Sobes.tech
Junior — Middle

Hoe voorkom je een conflict bij het gebruik van twee gelijke beans in de Spring-container?

sobes.tech AI

Antwoord van AI

In de Spring-container ontstaat een conflict als twee beans dezelfde naam (identificator) hebben. Om dit conflict te voorkomen:

  • Gebruik verschillende namen voor beans met de annotatie @Component("naam") of in de XML/Java-configuratie.
  • Gebruik de annotatie @Qualifier bij het injecteren van afhankelijkheden om expliciet aan te geven welke bean gebruikt moet worden.
  • Maak een van de beans @Primary, zodat deze standaard wordt gebruikt bij conflicten.

Voorbeeld met @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;
    }
}