Sobes.tech
Junior — Middle

Kā novērst konfliktu, izmantojot divus vienādus beanus Spring konteinerī?

sobes.tech AI

Atbilde no AI

Spring konteinerā rodas konflikts, ja divi biniem ir tas pats nosaukums (identifikators). Lai novērstu konfliktu:

  • Izmantojiet dažādus nosaukumus binēm ar @Component("nosaukums") anotāciju vai XML/Java konfigurācijā.
  • Injicējot atkarības, izmantojiet @Qualifier anotāciju, lai skaidri norādītu, kuru binu izmantot.
  • Padariet vienu no binēm @Primary, lai tas tiktu izmantots pēc noklusējuma konflikta gadījumā.

Piemērs ar @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;
    }
}