Я использую конфигурацию Spring на основе Java в своем проекте, указав создание компонента в @ Bean-аннотированных методах в @Configuration. Недавно, недавно, я начал думать, что, возможно, было бы лучше использовать @Autowired для удаления всех не важных компонентов из @Configuration, оставив только небольшой «корневой» набор из них (ключевые сервисы и технические бобы, подобные тем, Spring MVC).Как использовать @Autowired с конфигурацией на основе Java?
К сожалению, похоже, что Spring может заметить реализации для @Autowired зависимостей, только если они находятся внутри компонентно-отсканированного пакета, который я не могу обойтись, не обращаясь к некоторому XML.
Есть ли какой-либо способ использования @ Упомянутый Java-конфигурация без явного указания каждого компонента?
'@ Autowired' работает нормально в обычных конфигурациях' @ Bean', компонентное сканирование не требуется (или даже желательно). Просьба привести пример того, что у вас есть. – skaffman
Например, у меня есть служба @Bean MyService, которая имеет '@Autowired IDao dao'. Существует «интерфейс IDao» и «класс DaoImpl реализует IDao», и для «IDao» нет других реализаций. Насколько я понимаю, необходимо либо объявить '@Bean IDao dao() {return new DaoImpl }', либо использовать сканирование компонентов. В противном случае я получаю 'Совпадающий компонент типа IDao для исключения зависимости '. – Fixpoint
Вы можете выполнить компонентное сканирование с помощью '@ ComponentScan'. Нет необходимости в XML. – Nick