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

Как указать какую реализацию Bean нужно использовать при внедрении в Spring

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

  1. @Qualifier - аннотация для уточнения имени бина:
java
@Autowired
@Qualifier("myBeanImpl")
private MyBean myBean;
  1. Имя бина в @Component/@Service:
java
@Service("specialService")
public class SpecialServiceImpl implements MyService {}
  1. Primary Bean - если нужно указать реализацию по умолчанию:
java
@Primary
@Service
public class DefaultServiceImpl implements MyService {}
  1. Явное указание в конфигурации:
java
@Bean
public MyService myService() {
    return new SpecialServiceImpl();
}

Приоритет: @Qualifier > @Primary > тип/имя. В случае конфликтов лучше использовать @Qualifier для явного указания.

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

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

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

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