Sobes.tech
Junior — Middle

Ako predísť konfliktu pri použití dvoch rovnakých beanov v Spring kontejnere?

sobes.tech AI

Odpoveď od AI

V kontejneru Spring pride do konflikta, če dva beana imata isto ime (identifikator). Da bi se konflikt preprečil:

  • Uporabite različna imena za beane z anotacijo @Component("ime") ali v konfiguraciji XML/Java.
  • Pri injektiranju odvisnosti uporabite anotacijo @Qualifier, da jasno določite, kateri bean naj se uporabi.
  • Naredite enega od beanov @Primary, tako bo privzeto uporabljen v primeru konflikta.

Primer z @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;
    }
}