Определить реализацию по умолчанию для внедрения в Spring?
У меня есть базовый класс, который расширен некоторыми другими классами. Поэтому я должен предоставить квалификаторы для возможности внедрения конкретного экземпляра.
Интересно, смогу ли я пометить какой-либо из этих классов (например, самый верхний класс) как класс по умолчанию, который будет выбран, если не указан классификатор @Autowired
?
@Service
//@Qualifier("Parent")
class ParentRunner;
@Service
@Qualifier("Child")
class ChildRunner extends ParentRunner;
Следующее по крайней мере не работает:
@Autowired
//@Qualifier("Parent")
private ParentRunner runner;
1 ответ
Решение
Вы можете отметить одну реализацию с @Primary
который будет использоваться по умолчанию. При использовании XML вы можете использовать primary
элемент внутри bean
элемент для установки экземпляра на основной экземпляр компонента для использования.