По умолчанию контекст Spring не будет обращать внимания на @Autowired
аннотации. Для их обработки в контексте должен быть зарегистрирован компонент AutowiredAnnotationBeanPostProcessor
.
<context:annotation-config/>
регистрирует один из них для вас (вместе с несколькими другими), так что он вам нужен (если только вы не зарегистрировали AutowiredAnnotationBeanPostProcessor
, что совершенно правильно).
Если вам не нравится иметь @Autowired
в своем коде, то вы можете явно внедрить свойства в XML, используя <property>
, который просто перемещает беспорядок из одного места в другое.
Если ваш контекст чрезвычайно простой, то вы можете использовать неявную автоматическую разводку, как описано здесь . По сути, это говорит Spring, чтобы автоматически подключаться по имени или типу свойства. Для этого потребовалось очень мало настроек, но он очень быстро вышел из-под контроля - его автоматическая природа означает, что его трудно контролировать, и дает вам очень мало гибкости.
@Autowired
действительно лучший вариант, в общем.