Junior — Middle
როგორ შეიძლება თავიდან აიცილოს კონფლიქტი, როდესაც იყენებთ ორი ერთნაირ ბინს Spring კონტეინერში?
sobes.tech AI
პასუხი AI-სგან
სპრინგ კონტეინერში კონფლიქტი წარმოიქმნება, თუ ორი ბინი ერთსა და იმავე სახელით (იდენტიფიკატორით) არის. კონფლიქტის თავიდან ასაცილებლად:
- გამოიყენეთ სხვადასხვა სახელები ბინებისთვის
@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;
}
}