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

Какие знаешь способы решения проблемы, когда в Bean несколько кандидатов для одной зависимости

В Spring есть несколько способов разрешения конфликтов при наличии нескольких бинов одного типа:

  1. @Primary – помечает бин как основной кандидат:
java
@Primary
@Component
public class PrimaryService implements MyService {}
  1. @Qualifier – явное указание имени бина:
java
@Autowired
@Qualifier("secondaryService")
private MyService service;
  1. Имя переменной – если имя поля совпадает с именем бина:
java
@Autowired
private MyService secondaryService; // Бин должен быть @Component("secondaryService")
  1. @Resource – аналогично Qualifier, но из JSR-250:
java
@Resource(name = "secondaryService")
private MyService service;
  1. Ленивое разрешение – через ApplicationContext:
java
@Autowired
private ApplicationContext context;

public void useService() {
    MyService service = context.getBean("secondaryService", MyService.class);
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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