Sobes.tech
Junior — Middle

Kuidas vältida konflikti, kasutades kahte sama bean'i Spring konteineris?

sobes.tech AI

Vastus AI-lt

Spring konteineris konfliktu rodas, kui kaks bean-i omavad sama nime (identifikaatorit). Konflikti vältimiseks:

  • Kasutage erinevaid nimesid bean-idele annotatsiooniga @Component("nimi") või XML/Java konfiguratsioonis.
  • Kasutage sõltuvuste injekteerimisel annotatsiooni @Qualifier, et selgelt näidata, millist bean-i kasutada.
  • Tehke üks bean-ideks @Primary, nii kasutatakse seda vaikimisi konfliktide korral.

Näide @Qualifier-iga:

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