Встречается на собеседованиях • сегодня
Можно ли определить какой Bean внедрять по условию в Spring
В Spring можно условно выбирать бин для внедрения несколькими способами:
- @Profile - бины создаются только при активном профиле:
java
@Profile("dev")
@Service
public class DevService implements MyService {...}
@Profile("prod")
@Service
public class ProdService implements MyService {...}- @Conditional - более гибкие условия через Condition:
java
@Conditional(OnProductionCondition.class)
@Service
public class ProdService implements MyService {...}- @Qualifier - явное указание имени бина:
java
@Autowired
@Qualifier("devService")
private MyService service;- @Primary - задает бин по умолчанию при неоднозначности.
Также можно использовать фабрику бинов с програмной логикой выбора. В Spring Boot есть удобные аннотации типа @ConditionalOnProperty.

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