Sobes.tech
Junior — Middle

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.