Sobes.tech
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 @Qualifier ao 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;
    }
}