Sobes.tech
Junior — Middle

Kā Quarkus sasniedz Kontroles inversijas efektu, izmantojot atkarību injekciju?

sobes.tech AI

Atbilde no AI

Quarkus efektu Inversion of Control (IoC) sasniedz ar Dependency Injection (DI) mehānisma palīdzību, kas balstīts uz CDI (Contexts and Dependency Injection) specifikāciju. Quarkus automātiski skenē klases un komponentes, kas ir atzīmētas ar anotācijām kā @Inject, @ApplicationScoped, @Singleton un citām, un pārvalda to dzīves ciklu.

Kad kodā ir nepieciešama atkarība, Quarkus automātiski injicē nepieciešamo objektu, atbrīvojot izstrādātāju no manuālas instanču izveides un pārvaldības. Tas atvieglo realizāciju nomaiņu, vienkāršo testēšanu un palielina lietojumprogrammas modulatitāti.

Piemērs:

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());
    }
}

Šeit Consumer pats neizveido Service objektu, bet to saņem no Quarkus konteineris caur DI, kas ir IoC izpausme.