Junior — Middle
Quelles sont les conséquences si deux beans du même type sont lancés dans le conteneur?
sobes.tech IA
Réponse de l'IA
Si deux beans du même type sont déclarés dans le conteneur Spring sans qualification supplémentaire, une erreur surviendra lors de la tentative d'injection automatique (par exemple, via @Autowired) en raison de l'ambiguïté : le conteneur ne pourra pas déterminer quel bean injecter.
Pour éviter cette situation, vous pouvez :
- Utiliser l'annotation @Qualifier pour indiquer un nom spécifique de bean.
- Désigner l'un des beans comme @Primary, pour qu'il soit choisi par défaut.
- Injecter une collection de beans (par exemple, List ou Map) pour obtenir toutes les instances de ce type.
Exemple avec @Qualifier :
@Autowired
@Qualifier("beanName")
private MyService myService;
Ainsi, la présence de deux beans du même type nécessite une indication explicite de celui à utiliser, sinon l'application ne démarrera pas en raison d'une erreur de configuration.