Junior — Middle
¿Qué consecuencias surgen si se inician dos beans del mismo tipo en el contenedor?
sobes.tech AI
Respuesta de la IA
Si en el contenedor de Spring se declaran dos beans del mismo tipo sin una calificación adicional, al intentar la inyección automática (por ejemplo, mediante @Autowired) se producirá un error debido a la ambigüedad: el contenedor no podrá determinar qué bean inyectar.
Para evitar esta situación, se puede:
- Utilizar la anotación @Qualifier para indicar un nombre específico del bean.
- Designar uno de los beans como @Primary, para que sea el predeterminado.
- Inyectar una colección de beans (por ejemplo, List o Map) para obtener todas las instancias de ese tipo.
Ejemplo con @Qualifier:
@Autowired
@Qualifier("beanName")
private MyService myService;
De esta manera, la presencia de dos beans del mismo tipo requiere una indicación explícita de cuál usar, de lo contrario, la aplicación no se iniciará debido a un error de configuración.