Junior — Middle
Cum se poate preveni un conflict atunci când se folosesc două beans identice în containerul Spring?
sobes.tech AI
Răspuns de la AI
În containerul Spring, apare un conflict dacă două beans au același nume (identificator). Pentru a preveni conflictul:
- Utilizați nume diferite pentru beans cu ajutorul adnotării
@Component("nume")sau în configurația XML/Java. - Utilizați adnotarea
@Qualifierla injectarea dependenței pentru a indica clar care bean să fie utilizat. - Faceți unul dintre beans
@Primary, astfel încât să fie utilizat implicit în cazul unui conflict.
Exemplu cu @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;
}
}