Mam zależność cykliczną i konfigurację Java. Rozdzielanie go przy pomocy xml config jest bardzo łatwe, nie mogę go rozwiązać za pomocą konfiguracji java bez @Autowired. Fasola:Wiosna. Rozwiązuj zależność cykliczną za pomocą konfiguracji Java i bez @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;
}
}
próbowałem tego (Czytałem, że z @Bean adnotacji wiosny nie wywoła metodę za każdym razem fasola jest wymieniony, ale w tym przypadku to faktycznie został wywołany przez cały czas):
@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;
}
}
A to, ze @Autowired pól klasy konfiguracja:
@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;
}
}
również próbowałem wszystko powyżej @Lazy adnotacji. Nie pomaga. Ale działa idealnie, gdy przypisuję seterów A i B przy pomocy @Autowired. Ale to nie jest to, czego teraz chcę. Co robię źle i czy istnieje sposób, aby rozwiązać zależność Circular w java config bez użycia @Autowired?
Czy możesz wyjaśnić _Ale nie jest to, co chcę teraz._? Jeśli jest to odpowiednie narzędzie do pracy ... –
@Sotirios Delimanolis moja aplikacja jest teraz trochę nieporządna i obawiam się, że pomylę się z zależnościami w całym kodzie. To nie jest religijne i uwielbiam Autowired, ale w tej chwili wolę koncentrować komponenty w jednym pliku konfiguracyjnym i zarządzać zależnościami za pomocą rąk. Zastanawiam się też, czy to w ogóle możliwe. –
Na wiosennym forum odbyła się interesująca dyskusja: http: //forum.spring.io/forum/spring-projects/container/127799-circular-dependencies-with-autowired-in-java-based-configuration –