Junior — Middle
Jak předejít konfliktu při použití dvou stejných beanů v kontejneru Spring?
sobes.tech AI
Odpověď od AI
V kontejneru Spring nastává konflikt, pokud mají dva beany stejný název (identifikátor). Aby se konflikt předešel:
- Použijte různé názvy pro beany pomocí anotace
@Component("název")nebo v konfiguraci XML/Java. - Při vkládání závislosti použijte anotaci
@Qualifier, abyste jasně určili, který bean použít. - Učiňte jeden z beanů
@Primary, aby se při konfliktu používal jako výchozí.
Příklad s @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;
}
}