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

Как указать конкретную реализацию интерфейса для внедрения в Spring

В Spring можно указать конкретную реализацию интерфейса несколькими способами:

  1. @Qualifier - аннотация для уточнения бина:
java
@Autowired
@Qualifier("specificImpl")
private MyInterface myService;
  1. @Primary - помечает реализацию как основную:
java
@Primary
@Component
public class PrimaryImpl implements MyInterface {}
  1. Явное указание бина в конфигурации:
java
@Bean
public MyInterface myService() {
    return new SpecificImpl();
}
  1. Использование имени бина при инжекте:
java
@Autowired
private MyInterface specificImpl;

(если бин зарегистрирован с именем "specificImpl")

Выбор зависит от контекста: @Qualifier - для точечного указания, @Primary - для глобального приоритета, явное объявление - для полного контроля.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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