Junior — Middle
Ինչպե՞ս կարելի է կանխել կոնֆլիկտը, երբ օգտագործվում են երկու նույն բիները Spring կոնտեյներում։
sobes.tech AI
Պատասխան AI-ից
Spring կոնտեյներում հակամարտություն է առաջանում, եթե երկու բին ունեն նույն անունը (հատկանիշը): Հակամարտությունը կանխելու համար՝
- Օգտագործեք տարբեր անուններ բիների համար
@Component("անուն")նշումով կամ XML/Java կոնֆիգուրացիայում: - Օգտագործեք
@Qualifierնշումը կախվածության ներմուծման ժամանակ՝ հստակ նշելու համար, թե որ բինն է պետք օգտագործել: - Մեկ բինին դարձնել
@Primary, որպեսզի հակամարտության դեպքում այն օգտագործվի որպես նախընտրելի:
Օրինակ @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;
}
}