Come si ottiene l'effetto di Inversion of Control in Quarkus tramite Dependency Injection?
sobes.tech AI
Risposta dell'AI
In Quarkus, l'effetto di Inversione del Controllo (IoC) si ottiene attraverso il meccanismo di iniezione delle dipendenze (Dependency Injection, DI), basato sulla specifica CDI (Contexts and Dependency Injection). Quarkus esegue automaticamente la scansione delle classi e dei componenti contrassegnati con annotazioni come @Inject, @ApplicationScoped, @Singleton e altri, e gestisce il loro ciclo di vita.
Quando nel codice è necessaria una dipendenza, Quarkus inietta automaticamente l'oggetto necessario, liberando lo sviluppatore dalla creazione manuale di istanze e dalla loro gestione. Questo facilita la sostituzione delle implementazioni, semplifica i test e aumenta la modularità dell'applicazione.
Esempio:
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());
}
}
Qui, Consumer non crea l'oggetto Service da solo, ma lo riceve dal contenitore Quarkus tramite DI, che rappresenta l'IoC.