Назад к вопросам
Aston
Junior — Middle
88
Какова роль аннотации @Primary в фреймворке Spring и когда её следует использовать?
Компании, где спрашивали
eRaga Infosystem
Технодиасофт
Ответ от нейросети
sobes.tech AI
Аннотация @Primary в Spring используется для указания предпочтительного бина, когда в контексте есть несколько кандидатов одного типа. Если Spring не может однозначно выбрать бин для внедрения из-за нескольких подходящих, бин с @Primary будет выбран по умолчанию.
Использовать @Primary следует, когда:
- Есть несколько реализаций одного интерфейса или класса.
- Нужно явно указать, какой бин использовать по умолчанию.
Пример:
@Component
@Primary
public class DefaultPaymentService implements PaymentService {
// реализация
}
@Component
public class SpecialPaymentService implements PaymentService {
// другая реализация
}
В этом случае при автосвязывании PaymentService будет выбран DefaultPaymentService, если не указано иное.