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.