Встречается на собеседованиях • сегодня
Какие знаешь способы решения проблемы, если несколько Bean имплементируют один и тот же интерфейс в Spring
В Spring есть несколько способов разрешения неоднозначности при внедрении бинов с одним интерфейсом:
1. **@Qualifier** - явное указание имени бина:
```java
@Autowired
@Qualifier("firstService")
private MyService myService;
```
2. **@Primary** - пометить один бин как основной:
```java
@Bean
@Primary
public MyService firstService() {
return new FirstServiceImpl();
}
```
3. **Имя поля/параметра** - Spring сопоставляет по имени:
```java
@Autowired
private MyService firstService; // найдет бин с именем firstService
```
4. **@Resource** (JSR-250) - внедрение по имени:
```java
@Resource(name="secondService")
private MyService myService;
```
5. **Лямбда-выражение** (в конфигурации):
```java
@Bean
public SomeComponent component(Provider provider) {
return new SomeComponent(provider.get("secondService"));
}
```

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы