Sobes.tech
Junior — Middle

Quarkusda bog'liq bo'lishni in'ektsiya qilish orqali Inversion of Control ta'sirini qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Quarkusda Inversion of Control (IoC) effekti Dependency Injection (DI) mexanizmi orqali amalga oshiriladi, bu CDI (Contexts and Dependency Injection) spetsifikatsiyasiga asoslangan. Quarkus avtomatik ravishda @Inject, @ApplicationScoped, @Singleton va boshqa anotatsiyalar bilan belgilangan sinflar va komponentlarni skanerlashadi va ularning hayot aylanishini boshqaradi.

Kodda bog'liqlik talab qilinsa, Quarkus zarur bo'lgan ob'ektni avtomatik ravishda injektsiya qiladi, bu dasturchini qo'lda nusxa ko'chirish va ularni boshqarishdan ozod qiladi. Bu, ilovaning modulliqligini oshiradi, testlarni soddalashtiradi va modullarni o'zgartirishni osonlashtiradi.

Misol:

import javax.inject.Inject;
import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class Service {
    public String serve() {
        return "Service is working";
    }
}

@ApplicationScoped
public class Consumer {
    @Inject
    Service service;

    public void doWork() {
        System.out.println(service.serve());
    }
}

Bu yerda Consumer Service ob'ektini o'zi yaratmaydi, balki uni Quarkus konteyneridan DI orqali oladi, bu IoC ning namoyonidir.