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.