Junior — Middle
Kaip išvengti konflikto naudojant du vienodus bean'us Spring konteineryje?
sobes.tech AI
Atsakymas iš AI
Spring konteineryje konfliktas atsiranda, jei du bean'ai turi tą patį pavadinimą (identifikatorių). Norint išvengti konflikto:
- Naudokite skirtingus pavadinimus bean'ams su
@Component("pavadinimas")anotacija arba XML/Java konfigūracijoje. - Naudokite
@Qualifieranotaciją priklausomybių injekcijai, kad aiškiai nurodytumėte, kurį bean'ą naudoti. - Padarykite vieną iš bean'ų
@Primary, kad jis būtų naudojamas pagal numatytuosius nustatymus konfliktų atveju.
Pavyzdys su @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;
}
}