Penyelesaian: 1. Suntikan sementara; 2. Gunakan anotasi @Lazy; Pengenalan terperinci: 1. Suntikan sementara: Jika pergantungan antara dua Biji adalah sementara dan hanya wujud dalam kaedah tertentu, ia boleh diselesaikan dengan menyuntiknya dalam kaedah. Dalam kes ini, bekas IoC akan menyuntik Bean apabila kaedah dilaksanakan dan memusnahkannya serta-merta selepas pelaksanaan, dengan itu mengelakkan kebergantungan bulat 2. Gunakan anotasi @Lazy: Apabila kebergantungan antara dua Bean adalah jangka panjang, ia perlu; dikekalkan sepanjang keseluruhan kitaran hayat Tunggu masa penyelenggaraan
Sistem pengendalian untuk tutorial ini: sistem Windows 10, komputer Dell G3.
Rangka kerja Spring menyelesaikan masalah kebergantungan bulat melalui bekas IoC. Kebergantungan bulat berlaku apabila dua atau lebih kacang bergantung antara satu sama lain. Untuk menyelesaikan masalah ini, bekas Spring IoC menggunakan strategi berikut:
Suntikan sementara: Jika pergantungan dua biji adalah sementara dan hanya wujud dalam kaedah tertentu, ia boleh disuntik dalam kaedah. Dalam kes ini, bekas IoC akan menyuntik Bean apabila kaedah dilaksanakan dan memusnahkannya serta-merta selepas pelaksanaan, dengan itu mengelakkan kebergantungan bulat.
Gunakan anotasi @Lazy: Apabila hubungan kebergantungan antara dua Biji adalah jangka panjang dan perlu dikekalkan sepanjang kitaran hayat, anda boleh menggunakan anotasi @Lazy untuk menyelesaikan kebergantungan kitaran. Anotasi @Lazy memberitahu bekas IoC untuk menangguhkan permulaan kacang sehingga kacang digunakan. Dengan cara ini, apabila satu kacang dimulakan, kacang lain mungkin tidak dimulakan, dengan itu mengelakkan kebergantungan bulat.
Faktor semula kod: Jika kebergantungan bulat disebabkan oleh struktur kod yang tidak munasabah, kebergantungan bulat boleh dihapuskan dengan memfaktorkan semula kod. Contohnya, kaedah dan sifat awam boleh diekstrak ke dalam Kacang baharu, supaya kedua-dua Kacang asal bergantung pada Kacang baharu, dengan itu menghapuskan kebergantungan bulat.
Gunakan perpustakaan pihak ketiga: Sesetengah perpustakaan pihak ketiga menyediakan penyelesaian untuk menyelesaikan kebergantungan bulat, seperti Google Guice dan anotasi @InjectMocks Spring. Pustaka dan anotasi ini boleh membantu pembangun menyelesaikan masalah pergantungan bulat dengan lebih mudah.
Ringkasnya, Spring menyelesaikan masalah kebergantungan bulat melalui bekas IoC, anotasi @Lazy, pemfaktoran semula kod dan penggunaan perpustakaan pihak ketiga. Pembangun boleh memilih kaedah yang sesuai untuk menyelesaikan masalah pergantungan bulat mengikut situasi tertentu.
Atas ialah kandungan terperinci Bagaimana Spring menyelesaikan kebergantungan bulat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!