Junior — Middle
Wie kann man einen Konflikt vermeiden, wenn man zwei gleiche Beans im Spring-Container verwendet?
sobes.tech KI
Antwort von AI
Im Spring-Container tritt ein Konflikt auf, wenn zwei Beans denselben Namen (Identifikator) haben. Um Konflikte zu vermeiden:
- Verwenden Sie unterschiedliche Namen für Beans mit der Annotation
@Component("Name")oder in der XML/Java-Konfiguration. - Verwenden Sie die Annotation
@Qualifierbei der Dependency-Injektion, um explizit anzugeben, welcher Bean verwendet werden soll. - Machen Sie einen der Beans
@Primary, damit er standardmäßig bei Konflikten verwendet wird.
Beispiel mit @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;
}
}