Junior — Middle
Como evitar um conflito ao usar dois beans iguais no contêiner Spring?
sobes.tech IA
Resposta da IA
No contêiner Spring, ocorre um conflito se dois beans tiverem o mesmo nome (identificador). Para evitar o conflito:
- Use nomes diferentes para os beans com a anotação
@Component("nome")ou na configuração XML/Java. - Use a anotação
@Qualifierao injetar dependências para indicar claramente qual bean usar. - Faça um dos beans
@Primary, assim ele será usado por padrão em caso de conflito.
Exemplo com @Qualifier:
@Component("beanOne")
public class BeanOne {}
@Component("beanTwo")
public class BeanTwo {}
@Service
public class MyService {
private final BeanOne beanOne;
public MyService(@Qualifier("beanOne") BeanOne beanOne) {
this.beanOne = beanOne;
}
}