Hoe wordt het Inversion of Control-effect bereikt in Quarkus door middel van dependency injection?
sobes.tech AI
Antwoord van AI
In Quarkus wordt het effect van Inversie van Controle (IoC) bereikt via het mechanisme van Dependency Injection (DI), gebaseerd op de CDI-specificatie (Contexts and Dependency Injection). Quarkus scant automatisch de klassen en componenten gemarkeerd met annotaties zoals @Inject, @ApplicationScoped, @Singleton en anderen, en beheert hun levenscyclus.
Wanneer in de code een afhankelijkheid nodig is, injecteert Quarkus automatisch het benodigde object, waardoor de ontwikkelaar wordt vrijgesteld van het handmatig maken en beheren van instanties. Dit maakt het gemakkelijk om implementaties te vervangen, vereenvoudigt testen en verhoogt de modulariteit van de applicatie.
Voorbeeld:
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());
}
}
Hier creëert Consumer niet zelf het Service-object, maar ontvangt het van de Quarkus-container via DI, wat de manifestatie van IoC is.