Sobes.tech
Junior — Middle

Como é que a implementação concreta da interface Bean é implementada e configurada no Spring considerando as condições?

sobes.tech IA

Resposta da IA

No Spring, a injeção de uma implementação específica de uma interface Bean considerando condições geralmente é feita usando anotações e configurações que permitem escolher o bean necessário com base no perfil, propriedade ou outras condições.

Principais métodos:

  • @Primary — marca um bean como preferencial se houver várias implementações de uma interface.
  • @Qualifier — permite indicar explicitamente qual implementação injetar.
  • @Profile — o bean está ativo apenas sob um perfil de aplicação específico.
  • @Conditional — método mais flexível que permite criar beans sob condições específicas.

Exemplo usando @Qualifier:

public interface Service {
    void execute();
}

@Component("implA")
public class ServiceImplA implements Service {
    public void execute() { System.out.println("ImplA"); }
}

@Component("implB")
public class ServiceImplB implements Service {
    public void execute() { System.out.println("ImplB"); }
}

@Component
public class Client {
    private final Service service;

    public Client(@Qualifier("implB") Service service) {
        this.service = service;
    }
}

Dessa forma, é possível injetar a implementação necessária da interface dependendo das condições, perfis ou indicações explícitas.