Junior — Middle
Kuidas saavutada Quarkus'is Inversion of Control mõju sõltuvuste süstimise kaudu?
sobes.tech AI
Vastus AI-lt
Quarkus'is Inversion of Control (IoC) mõju saavutatakse sõltuvuste süstimise (Dependency Injection, DI) mehhanismi kaudu, mis põhineb CDI (Contexts and Dependency Injection) spetsifikatsioonil. Quarkus skaneerib automaatselt klassid ja komponendid, mis on märgitud annotatsioonidega nagu @Inject, @ApplicationScoped, @Singleton ja teised, ning haldab nende elutsüklit.
Kui koodis on vaja sõltuvust, süstib Quarkus automaatselt vajaliku objekti, vabastades arendaja käsitsi eksemplaride loomise ja haldamise kohustusest. See lihtsustab rakenduste vahetamist, testimist ning suurendab modulaarust.
Näide:
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());
}
}
Siin Consumer ei loo ise Service objekti, vaid saab selle Quarkus konteinerist DI kaudu, mis on IoC väljendus.