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