Назад к вопросам
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 нужна, чтобы избежать конфликтов при наличии нескольких кандидатов для внедрения и явно указать предпочтительный бин.