Dalam aplikasi Spring MVC dan Portlet, suntikan medan merujuk kepada amalan menyuntik terus kebergantungan ke dalam medan beranotasi dengan @Autowired, seperti yang ditunjukkan dalam contoh berikut:
@Component public class MyComponent { @Autowired private Cart cart; }
Sebagai alternatif, suntikan pembina melibatkan pelepasan kebergantungan sebagai parameter dalam pembina:
@Component public class MyComponent { private final Cart cart; @Autowired public MyComponent(Cart cart) { this.cart = cart; } }
Kebaikan dan Kelemahan:
Suntikan pembina menawarkan beberapa kelebihan:
Suntikan penetap juga merupakan pilihan, menyediakan mekanisme untuk menyuntik kebergantungan yang mungkin menjadi pilihan atau boleh diubah dari semasa ke semasa.
Sebaliknya, suntikan medan mengalami beberapa kelemahan:
Garis Panduan Suntikan:
Spring mengesyorkan yang berikut garis panduan:
Kesimpulan:
Memandangkan keburukan suntikan medan, secara amnya adalah dinasihatkan untuk memilih suntikan pembina atau penetap. Kemudahan suntikan medan ditimbang oleh potensi kelemahan dan batasannya.
Atas ialah kandungan terperinci Mengapa Suntikan Pembina atau Setter Diutamakan Daripada Suntikan Medan pada Musim Bunga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!