Sobes.tech
Назад к вопросам
Senior
7

Аннотация @Primary — в каких случаях она нужна?

Компании, где спрашивали
Азиатско-Тихоокеанский банк

Ответ от нейросети

sobes.tech AI

Аннотация @Primary в Spring используется для обозначения одного из нескольких бинов одного типа как предпочтительного при автосвязывании (autowiring).

Когда в контексте есть несколько реализаций одного интерфейса или класса, и Spring не может однозначно выбрать, какой бин внедрять, @Primary указывает, что этот бин должен использоваться по умолчанию.

Пример:

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

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

// При автосвязывании PaymentService будет выбран MainPaymentService
@Autowired
private PaymentService paymentService;

Таким образом, @Primary нужна, чтобы избежать конфликтов при наличии нескольких кандидатов для внедрения и явно указать предпочтительный бин.