Вступить в клуб →
лёгкаявопросSpring Boot и REST API

Две реализации одного интерфейса и внедрение по конструктору

В сервисе появилась вторая реализация интерфейса уведомлений:

@Service
class EmailNotifier implements Notifier { }

@Service
class SmsNotifier implements Notifier { }

@Service
class OrderService {
    private final Notifier notifier;

    OrderService(Notifier notifier) {
        this.notifier = notifier;
    }
}

Что произойдёт при запуске приложения?

  • Приложение стартует: контейнер выберет бин, чьё имя совпадает по алфавиту первым
  • Приложение стартует, а ошибка возникнет при первом вызове notifier во время обработки запроса
  • Приложение не стартует: контейнер не может выбрать между двумя кандидатами, нужен @Primary или @Qualifier
  • Приложение стартует: Spring внедрит обе реализации и будет вызывать их по очереди

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела