Junior — Middle
Kā novērst konfliktu, izmantojot divus vienādus beanus Spring konteinerī?
sobes.tech AI
Atbilde no AI
Spring konteinerā rodas konflikts, ja divi biniem ir tas pats nosaukums (identifikators). Lai novērstu konfliktu:
- Izmantojiet dažādus nosaukumus binēm ar
@Component("nosaukums")anotāciju vai XML/Java konfigurācijā. - Injicējot atkarības, izmantojiet
@Qualifieranotāciju, lai skaidri norādītu, kuru binu izmantot. - Padariet vienu no binēm
@Primary, lai tas tiktu izmantots pēc noklusējuma konflikta gadījumā.
Piemērs ar @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;
}
}