Встречается на собеседованиях • сегодня
Какие знаешь способы решения проблемы, когда в Bean несколько кандидатов для одной зависимости
В Spring есть несколько способов разрешения конфликтов при наличии нескольких бинов одного типа:
- @Primary – помечает бин как основной кандидат:
java
@Primary
@Component
public class PrimaryService implements MyService {}- @Qualifier – явное указание имени бина:
java
@Autowired
@Qualifier("secondaryService")
private MyService service;- Имя переменной – если имя поля совпадает с именем бина:
java
@Autowired
private MyService secondaryService; // Бин должен быть @Component("secondaryService")- @Resource – аналогично Qualifier, но из JSR-250:
java
@Resource(name = "secondaryService")
private MyService service;- Ленивое разрешение – через ApplicationContext:
java
@Autowired
private ApplicationContext context;
public void useService() {
MyService service = context.getBean("secondaryService", MyService.class);
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы