У меня есть круговая ссылка в одном из моих проектов на работе с использованием Spring, которую я не могу исправить, и при запуске не получается следующая ошибка:
'org.springframework.security.authenticationManager': Requested bean is currently in creation: Is there an unresolvable circular reference?
Я попытался воссоздать ту же проблему на меньшем уровне в примерном проекте (без всех деталей моего рабочего проекта). Однако мне не удалось найти правдоподобный сценарий, когда весна терпит неудачу с ошибкой. Вот что у меня есть:
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.