Junior — Middle
Come evitare un conflitto quando si utilizzano due bean uguali nel contenitore Spring?
sobes.tech AI
Risposta dell'AI
Nel contenitore Spring, si verifica un conflitto se due bean hanno lo stesso nome (identificatore). Per prevenire il conflitto:
- Usare nomi diversi per i bean con l'annotazione
@Component("nome")o nella configurazione XML/Java. - Usare l'annotazione
@Qualifierdurante l'iniezione delle dipendenze per indicare esplicitamente quale bean usare. - Rendere uno dei bean
@Primary, così verrà usato di default in caso di conflitto.
Esempio con @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;
}
}