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

Как использовать выборочно два Bean одного типа в контексте Spring

В Spring можно различать бины одного типа с помощью аннотации @Qualifier или указывая имя бина напрямую.

Пример:

java
@Component
@Qualifier("firstService")
public class FirstServiceImpl implements MyService { ... }

@Component
@Qualifier("secondService")
public class SecondServiceImpl implements MyService { ... }

@Service
public class ConsumerService {
private final MyService firstService;
private final MyService secondService;

text
@Autowired
public ConsumerService(
    @Qualifier("firstService") MyService firstService,
    @Qualifier("secondService") MyService secondService
) {
    this.firstService = firstService;
    this.secondService = secondService;
}

}

text

Также можно использовать `@Resource(name = "beanName")` для инжекта по имени. Если бины не помечены `@Qualifier`, можно ссылаться на них по имени класса (с маленькой буквы).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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