Sobes.tech
Назад к вопросам
Junior — Middle
88

Какова роль аннотации @Primary в фреймворке Spring и когда её следует использовать?

Компании, где спрашивали
AstonAston
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, если не указано иное.