Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Spring: qualifier, primary

Как решить проблему нескольких бинов одного типа?

Вопрос проверяет знание способов явного выбора бинов в Spring-контейнере.

Короткий ответ

Проблема решается явным указанием нужного бина. Для этого используют @Qualifier, @Primary или внедрение по имени. Также можно внедрять коллекцию бинов. Выбор способа зависит от сценария использования.

Длинный ответ

Spring предоставляет несколько механизмов для разрешения конфликтов внедрения.

Основные способы решения

Перед выбором важно понимать, какой вариант лучше подходит под задачу.

1. @Qualifier

Позволяет явно указать, какой бин должен быть внедрён.

@Autowired
@Qualifier("serviceA")
private MyService myService;

2. @Primary

Назначает бин «по умолчанию».

@Primary
@Service
class ServiceA implements MyService {}

Используется, если в большинстве случаев нужен один конкретный бин.

3. Внедрение по имени

Имя поля или параметра совпадает с именем бина.

4. Внедрение коллекции

Используется, когда нужны все реализации.

@Autowired
private List<MyService> services;

Вывод

Spring предоставляет гибкие инструменты для работы с несколькими бинами одного типа, и правильный выбор подхода делает код явным и понятным.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Spring

    Spring

Ключевые слова

#qualifier

#primary

Подпишись на Java Developer в телеграм