Tengo una referencia circular en uno de mis proyectos en el trabajo usando la primavera, que no estoy en condiciones de solucionar, y se produce el siguiente error en el inicio:primavera ejemplo de referencia circular
'org.springframework.security.authenticationManager': Requested bean is currently in creation: Is there an unresolvable circular reference?
Intenté Recrear el mismo problema en un nivel más pequeño en un proyecto de muestra (sin todos los detalles de mi proyecto de trabajo). Sin embargo, no he podido encontrar un escenario plausible donde la primavera falla con un error. Esto es lo que tengo:
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();
}
}
Tengo un escenario similar en mi proyecto, lo que falla, y yo estaba esperando la primavera para quejarse en mi proyecto de ejemplo también. ¡Pero funciona bien! ¿Puede alguien darme un ejemplo simple de cómo romper la primavera con el error de referencia circular?
Edité: Resolví el problema usando javax.inject.Provider. La única otra diferencia en los 2 proyectos fue que las anotaciones utilizadas fueron javax.inject.Inject y javax.annotation.ManagedBean en lugar de @Autowired y @Component.
Solo para agregar a esto, nos encontramos con un problema similar (con la inyección de SpringTemplateEngine). La solución de "inyección setter" NO ayudó, pero la anotación '@ Lazy' hizo el truco. Se siente como una curita sobre una herida de bala, pero por ahora me llevaré la victoria y me iré. Gracias señor Spaeth. – demaniak