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