Junior — Middle
Hoe voorkom je een conflict bij het gebruik van twee gelijke beans in de Spring-container?
sobes.tech AI
Antwoord van AI
In de Spring-container ontstaat een conflict als twee beans dezelfde naam (identificator) hebben. Om dit conflict te voorkomen:
- Gebruik verschillende namen voor beans met de annotatie
@Component("naam")of in de XML/Java-configuratie. - Gebruik de annotatie
@Qualifierbij het injecteren van afhankelijkheden om expliciet aan te geven welke bean gebruikt moet worden. - Maak een van de beans
@Primary, zodat deze standaard wordt gebruikt bij conflicten.
Voorbeeld met @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;
}
}