Rumah >Java >javaTutorial >Kebergantungan kitaran dalam but musim bunga
Pergantungan kitaran berlaku di Java apabila dua kelas atau dua modul bergantung antara satu sama lain, sekali gus membentuk kitaran.
Andaikan kita mempunyai dua biji A dan B yang bergantung antara satu sama lain seperti yang ditunjukkan dalam contoh di bawah:
@Component public class A{ private final B b; public A(B b){ this.b = b; } }
@Component public class B{ private final A a; public B(A a){ this.a = a; } }
Apabila menjalankan projek anda, anda akan mendapat ralat berikut:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
Jadi, untuk menyelesaikan pergantungan kitaran ini, kami mempunyai empat penyelesaian:
Dalam kes kami, kami akan menggunakan penyelesaian keempat iaitu hanya menggunakan anotasi @lazy seperti yang ditunjukkan dalam contoh di bawah:
@Component public class A{ private final B b; public A(@Lazy B b){ this.b = b; } }
@Component public class B{ private final A a; public B(A a){ this.a = a; } }
Dan di sana kita berada, kita kini keluar dari kitaran ini :)
Atas ialah kandungan terperinci Kebergantungan kitaran dalam but musim bunga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!