Sobes.tech
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:

  1. 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;
    }
}
  1. 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;
    }
}
  1. Maydonlar orqali (Field Injection) — bogʻlanishlar toʻgʻridan-toʻgʻri maydonlarga @Autowired annotatsiyasi 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.