Sobes.tech
Junior — Middle

Cum se poate preveni un conflict atunci când se folosesc două beans identice în containerul Spring?

sobes.tech AI

Răspuns de la AI

În containerul Spring, apare un conflict dacă două beans au același nume (identificator). Pentru a preveni conflictul:

  • Utilizați nume diferite pentru beans cu ajutorul adnotării @Component("nume") sau în configurația XML/Java.
  • Utilizați adnotarea @Qualifier la injectarea dependenței pentru a indica clar care bean să fie utilizat.
  • Faceți unul dintre beans @Primary, astfel încât să fie utilizat implicit în cazul unui conflict.

Exemplu cu @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;
    }
}