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

Как можно указать конкретный тип Bean для внедрения через аннотации в Spring

В Spring можно указать конкретный тип Bean для внедрения несколькими способами:

  1. @Qualifier - уточняет имя бина:
java
@Autowired
@Qualifier("myBean")
private MyService service;
  1. Имя поля/параметра - если бины имеют разные имена:
java
@Autowired
private MyService myServiceBean;
  1. Primary - помечает предпочтительный бин:
java
@Primary
@Service
public class PrimaryService implements MyService {}
  1. Именованные бины - через @Bean(name):
java
@Bean("specialBean")
public MyService createSpecialBean() {
    return new SpecialServiceImpl();
}
  1. Кастомные квалификаторы - создание своей аннотации:
java
@Target({FIELD, PARAMETER})
@Retention(RUNTIME)
@Qualifier
public @interface CustomQualifier {}

@CustomQualifier
@Service
public class CustomService implements MyService {}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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