Ho una dipendenza circolare e java config. Mentre risolverlo con xml config è molto semplice non riesco a risolverlo con java config senza @Autowired. Fagioli:Primavera. Risolvi la dipendenza circolare con java config e senza @Autowired
public class A {
private B b;
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
}
public class B {
private A a;
public A getA() {
return a;
}
public void setA(A a) {
this.a = a;
}
}
Ho provato questo (ho letto che con @Bean Primavera annotazione non richiamare il metodo si fa riferimento ogni chicco volta, ma in questo caso in realtà è stata invocata per tutto il tempo):
@Configuration
public class Config {
@Bean
public A a() {
A a = new A();
a.setB(b());
return a;
}
@Bean
public B b() {
B b = new B();
b.setA(a());
return b;
}
}
E questo, con @Autowired di campi classe di configurazione:
@Configuration
public class Config {
@Autowired
A a;
@Autowired
B b;
@Bean
public A a() {
A a = new A();
a.setB(b);
return a;
}
@Bean
public B b() {
B b = new B();
b.setA(a);
return b;
}
}
Inoltre ho provato tutti di cui sopra con @Lazy annotazione. Non aiuta Ma funziona perfettamente se annoto i setter di A e B con @Autowired. Ma non è quello che voglio adesso. Cosa sto facendo male e c'è un modo per risolvere la dipendenza circolare in java config senza l'uso di @Autowired?
Puoi spiegare _Ma non è quello che voglio adesso._? Se è lo strumento giusto per il lavoro ... –
@Sotirios Delimanolis la mia app è poco confusa al momento e ho paura di confondermi con le dipendenze attorno al codice. Non è religioso e adoro Autowired, ma al momento preferirei concentrare i fagioli in un unico file di configurazione e gestire le dipendenze a mano. Inoltre mi chiedo se è possibile a tutti. –
C'è stata un'interessante discussione sul forum di primavera: http: //forum.spring.io/forum/spring-projects/container/127799-circular-dependencies-con-autowired-in-java-configuration-configuration –