Senior
85
W jakich przypadkach potrzebny jest anotacja @Primary?
Firmy, w których zadano pytania
Азиатско-Тихоокеанский банк
Odpowiedź od AI
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 нужна, чтобы избежать конфликтов при наличии нескольких кандидатов для внедрения и явно указать предпочтительный бин.