Junior — Middle
Kako sprečiti sukob prilikom korišćenja dva ista beana u Spring kontejneru?
sobes.tech АИ
Одговор од АИ
U Spring kontejneru dolazi do sukoba ako dva beana imaju isto ime (identifikator). Da biste sprečili sukob:
- Koristite različite nazive za beane pomoću anotacije
@Component("ime")ili u XML/Java konfiguraciji. - Koristite anotaciju
@Qualifierprilikom ubrizgavanja zavisnosti da jasno naznačite koji bean treba koristiti. - Učinite jedan od beana
@Primary, tako će se koristiti po defaultu u slučaju sukoba.
Primer sa @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;
}
}