Назад к вопросам
Middle
4
Для чего используются аннотации @Primary и @Qualifier в Spring?
Компании, где спрашивали
Лоция
Ответ от нейросети
sobes.tech AI
В Spring аннотации @Primary и @Qualifier используются для разрешения неоднозначностей при внедрении зависимостей, когда в контексте есть несколько бинов одного типа.
- @Primary — помечает бин как основной, который будет внедряться по умолчанию, если не указан другой выбор.
- @Qualifier — позволяет явно указать, какой именно бин нужно внедрить, используя имя или специальный идентификатор.
Пример:
@Component
@Primary
public class ServiceA implements MyService {}
@Component
@Qualifier("specialService")
public class ServiceB implements MyService {}
// Внедрение
@Autowired
private MyService myService; // получит ServiceA, так как он @Primary
@Autowired
@Qualifier("specialService")
private MyService specialService; // получит ServiceB
Таким образом, @Primary задает бин по умолчанию, а @Qualifier позволяет выбрать конкретный бин при необходимости.