Back to questions
БАРС групп
Junior — Middle
69
Объясните назначение и использование аннотации @Qualifier в контексте Spring Framework.
Companies where asked
Answer from AI
sobes.tech AI
Аннотация @Qualifier в Spring Framework используется для уточнения, какой именно бин должен быть внедрён, когда в контексте существует несколько кандидатов одного типа.
По умолчанию Spring внедряет бин по типу. Если есть несколько бинов одного типа, возникает неоднозначность, и Spring выбрасывает исключение. Чтобы решить эту проблему, используют @Qualifier.
Пример использования:
@Component
@Qualifier("fastService")
public class FastPaymentService implements PaymentService {
// реализация
}
@Component
@Qualifier("secureService")
public class SecurePaymentService implements PaymentService {
// реализация
}
@Service
public class OrderService {
private final PaymentService paymentService;
public OrderService(@Qualifier("fastService") PaymentService paymentService) {
this.paymentService = paymentService;
}
}
В этом примере при внедрении в OrderService будет использован бин с квалификатором "fastService".
Таким образом, @Qualifier помогает управлять выбором конкретной реализации при множестве кандидатов одного типа.