Sobes.tech
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;
    }
}