Sobes.tech
Junior — Middle

Kako sprečiti sukob prilikom korišćenja dva ista beana u Spring kontejneru?

sobes.tech АИ

Одговор од АИ

U Spring kontejneru dolazi do sukoba ako dva beana imaju isto ime (identifikator). Da biste sprečili sukob:

  • Koristite različite nazive za beane pomoću anotacije @Component("ime") ili u XML/Java konfiguraciji.
  • Koristite anotaciju @Qualifier prilikom ubrizgavanja zavisnosti da jasno naznačite koji bean treba koristiti.
  • Učinite jedan od beana @Primary, tako će se koristiti po defaultu u slučaju sukoba.

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