Sobes.tech
Junior — Middle
158

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

Компаниите бяха попитани
AstonAston
eRaga Infosystem
Технодиасофт

Отговор от AI

sobes.tech AI

Аннотация @Primary в Spring используется для указания предпочтительного бина, когда в контексте есть несколько кандидатов одного типа. Если Spring не может однозначно выбрать бин для внедрения из-за нескольких подходящих, бин с @Primary будет выбран по умолчанию.

Использовать @Primary следует, когда:

  • Есть несколько реализаций одного интерфейса или класса.
  • Нужно явно указать, какой бин использовать по умолчанию.

Пример:

@Component
@Primary
public class DefaultPaymentService implements PaymentService {
    // реализация
}

@Component
public class SpecialPaymentService implements PaymentService {
    // другая реализация
}

В этом случае при автосвязывании PaymentService будет выбран DefaultPaymentService, если не указано иное.