@MisterParser

В чем разница между аннотацией @Qualifier и интерфейсом?

Читаю книгу Spring в действии и возник вопрос зачем применять квалификаторы (в книге показывает на примере струнных инструментов), если можно просто реализовать маркерный интерфейс?
Интересуют плюсы и минусы двух способов, в книге это не описано.
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
`@Qualifier` позволяет сделать несколько реализаций одного и того же интерфейса.

Маркерный интерфейс - не всегда вариант. Например, если нужно несколько соединений с базами данных, то нужен интерфейс `DataSource` для всех. А наследоваться от его реализаций, чтобы добавить этот самый маркерный интерфейс - это даже не всегда возможно. Например, если DataSource реализуется где-то глубоко внутри пула соединений или драйвера JDBC.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
BorLaze
@BorLaze
Java developer
Не нужно плодить сущности без надобности.

Если сделать все через интерфейсы, то для трех, допустим, реализаций нам понадобится 4 файла - базовый интерфейс с методами, и три наследника, которые будут выполнять роль селектора.

Через @Qualifier все это не нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы