Встречается на собеседованиях • сегодня

Как внедрить бин при двух реализациях интерфейса

В 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` – самый явный и гибкий способ.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы