Junior — Middle
¿Cómo se puede evitar un conflicto al usar dos beans iguales en el contenedor de Spring?
sobes.tech AI
Respuesta de la IA
En el contenedor de Spring, ocurre un conflicto si dos beans tienen el mismo nombre (identificador). Para prevenir el conflicto, se puede:
- Usar diferentes nombres para los beans con la anotación
@Component("nombre")o en la configuración XML/Java. - Usar la anotación
@Qualifieral inyectar la dependencia, para indicar claramente qué bean usar. - Hacer uno de los beans
@Primary, de modo que se utilice por defecto en caso de conflicto.
Ejemplo con @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;
}
}