Пример круглой пружины

У меня есть циклическая ссылка в одном из моих проектов на работе с использованием Spring, который я не могу исправить, и при запуске происходит сбой со следующей ошибкой:

'org.springframework.security.authenticationManager': Requested bean is currently in creation: Is there an unresolvable circular reference?

Я попытался воссоздать ту же проблему на меньшем уровне в примере проекта (без всех подробностей моего рабочего проекта ). Однако мне не удалось придумать правдоподобный сценарий, в котором Spring терпит неудачу с ошибкой. Вот что у меня есть:

public class ClassA {
    @Autowired
    ClassB classB;
}

public class ClassB {
    @Autowired
    ClassC classC;
}

@Component
public class ClassC {
    @Autowired
    ClassA classA;
}

@Configuration
public class Config {
    @Bean
    public ClassA classA() {
        return new ClassA();
    }

    @Bean
    public ClassB classB() {
        return new ClassB();
    }
}

У меня есть аналогичный сценарий в моем проекте, который терпит неудачу, и я ожидал, что весна будет жаловаться и в моем примере проекта. Но работает нормально! Может ли кто-нибудь дать мне простой пример того, как сломать пружину с ошибкой круговой ссылки?

Изменить:Я исправил проблему, используя javax.inject.Provider. Единственное другое различие в двух проектах заключалось в том, что используемые аннотации были javax.inject.Inject и javax.annotation.ManagedBean вместо @Autowired и @Component.

26
задан robbin 5 July 2012 в 17:08
поделиться