Junior — Middle
Ako predísť konfliktu pri použití dvoch rovnakých beanov v Spring kontejnere?
sobes.tech AI
Odpoveď od AI
V kontejneru Spring pride do konflikta, če dva beana imata isto ime (identifikator). Da bi se konflikt preprečil:
- Uporabite različna imena za beane z anotacijo
@Component("ime")ali v konfiguraciji XML/Java. - Pri injektiranju odvisnosti uporabite anotacijo
@Qualifier, da jasno določite, kateri bean naj se uporabi. - Naredite enega od beanov
@Primary, tako bo privzeto uporabljen v primeru konflikta.
Primer z @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;
}
}