Como é alcançado o efeito Inversão de Controle no Quarkus através da injeção de dependências?
sobes.tech IA
Resposta da IA
No Quarkus, o efeito de Inversão de Controle (IoC) é alcançado através do mecanismo de injeção de dependências (Dependency Injection, DI), baseado na especificação CDI (Contexts and Dependency Injection). O Quarkus escaneia automaticamente as classes e componentes marcados com anotações como @Inject, @ApplicationScoped, @Singleton e outros, e gerencia seu ciclo de vida.
Quando o código necessita de uma dependência, o Quarkus injeta automaticamente o objeto necessário, libertando o desenvolvedor de criar manualmente instâncias e gerenciá-las. Isso facilita a substituição de implementações, simplifica os testes e aumenta a modularidade da aplicação.
Exemplo:
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());
}
}
Aqui, Consumer não cria o objeto Service por si só, mas o recebe do contêiner Quarkus via DI, que é a manifestação de IoC.