¿Cómo se logra el efecto de Inversión de Control en Quarkus mediante la inyección de dependencias?
sobes.tech AI
Respuesta de la IA
En Quarkus, el efecto de Inversión de Control (IoC) se logra mediante el mecanismo de inyección de dependencias (Dependency Injection, DI), basado en la especificación CDI (Contexts and Dependency Injection). Quarkus escanea automáticamente las clases y componentes marcados con anotaciones como @Inject, @ApplicationScoped, @Singleton y otros, y gestiona su ciclo de vida.
Cuando en el código se requiere una dependencia, Quarkus inyecta automáticamente el objeto necesario, liberando al desarrollador de crear manualmente instancias y gestionarlas. Esto facilita reemplazar implementaciones, simplifica las pruebas y aumenta la modularidad de la aplicación.
Ejemplo:
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());
}
}
Aquí, Consumer no crea el objeto Service por sí mismo, sino que lo recibe del contenedor Quarkus a través de DI, que es la manifestación de IoC.