Junior — Middle
Spring Framework doirasida bog'lanishni injektsiya qilishning qanday usullari mavjud?
sobes.tech AI
AIdan javob
Spring Frameworkda, bogʻlanishlarni in'ektsiya qilish (Dependency Injection, DI) quyidagi asosiy usullar bilan amalga oshirilishi mumkin:
- Konstruktor orqali — bogʻlanishlar sinf konstruktorining parametrlar orqali uzatiladi. Bu eng tavsiya etilgan usul boʻlib, bogʻlanishlarni aniq qiladi va test qilishni osonlashtiradi.
@Component
public class Service {
private final Repository repository;
public Service(Repository repository) {
this.repository = repository;
}
}
- Setterlar orqali (Setter Injection) — bogʻlanishlar obyekt yaratilgandan soʻng setter metodlari orqali oʻrnatiladi.
@Component
public class Service {
private Repository repository;
@Autowired
public void setRepository(Repository repository) {
this.repository = repository;
}
}
- Maydonlar orqali (Field Injection) — bogʻlanishlar toʻgʻridan-toʻgʻri maydonlarga
@Autowiredannotatsiyasi yordamida in'ektsiya qilinadi.
@Component
public class Service {
@Autowired
private Repository repository;
}
Ushbu usul kamroq tavsiya etiladi, chunki test qilishni qiyinlashtiradi va bogʻlanishlarni teskari qilish prinsipini buzadi.
Barcha bu usullar Spring tomonidan qoʻllab-quvvatlanadi va komponentlarning bogʻlanishlarini moslashuvchan boshqarish imkonini beradi.