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

Какой бин будет использован при наличии двух бинов одного типа с разной реализацией в Spring

Spring выбросит исключение NoUniqueBeanDefinitionException, так как не может определить, какой именно бин инжектить. Для разрешения конфликта можно использовать:

  1. @Primary – помечает один бин как основной:
java
@Primary
@Service
public class PrimaryServiceImpl implements MyService {}
  1. @Qualifier – явно указывает имя бина:
java
@Autowired
@Qualifier("specificService")
private MyService myService;
  1. Имя переменной – если имя поля совпадает с именем бина:
java
@Autowired
private MyService specificService; // Бин должен быть назван "specificService"
  1. @Resource – аналог @Qualifier из JSR-250:
java
@Resource(name = "specificService")
private MyService myService;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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