Встречается на собеседованиях • сегодня
Как внедрить бин при двух реализациях интерфейса
В Spring можно использовать @Qualifier для указания конкретной реализации.
Пример:
java
public interface Service {
void execute();
}
@Service("firstService")
public class FirstService implements Service {
@Override
public void execute() { System.out.println("First"); }
}
@Service("secondService")
public class SecondService implements Service {
@Override
public void execute() { System.out.println("Second"); }
}
// Внедрение с @Qualifier
@Autowired
@Qualifier("firstService")
private Service service;
text
**Альтернативы:**
1. `@Primary` – помечает реализацию как основную.
2. Имя поля – если имя поля совпадает с именем бина (`firstService`).
3. `@Resource(name = "firstService")` – JSR-250 аналог `@Qualifier`.
Выбор зависит от контекста, но `@Qualifier` – самый явный и гибкий способ.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы