Spring qanday qilib konstruktorlar yordamida bog'liqliklarni injektsiya qilish mexanizmini ishlatadi?
sobes.tech AI
AIdan javob
Spring, bog'lanishlarni in'ektsiya qilish mexanizmini konstruktorlar orqali ishlatadi, bu esa nazoratni teskari qilish va testlarni osonlashtirish uchun.
Agar sinfda parametrlar bilan konstruktor e'lon qilingan bo'lsa, Spring bean yaratilayotganda kerakli bog'lanishlarni avtomatik ravishda taqdim etadi, ular ham kontekstda ro'yxatdan o'tgan.
Misol:
@Component
public class ServiceA {
private final Repository repository;
// Bog'lanish bilan konstruktor
public ServiceA(Repository repository) {
this.repository = repository;
}
// sinf metodlari
}
ServiceA yaratilayotganda, Spring Repository beanini topadi va uni konstruktorga o'tkazadi. Bu quyidagilarni imkonini beradi:
- Bog'lanishlarni aniq qilish.
- Maydonlarning o'zgarmasligini (final) ta'minlash.
- Testlarni osonlashtirish, konstruktor orqali mock'larni joylashtirish.
Agar sinfda faqat bitta konstruktor bo'lsa, Spring uni avtomatik ravishda ishlatadi. Agar bir nechta bo'lsa, kerakli konstruktor @Autowired annotatsiyasi bilan belgilanishi mumkin.
Shunday qilib, konstruktor orqali bog'lanishni in'ektsiya qilish Springda bog'lanishlarni boshqarishning afzal ko'rilgan usuli bo'lib, toza va test qilinadigan kodni ta'minlaydi.