2013-12-16 4 views
1

Я использую autowiring в одном из моих проектов. @autowiring работает нормально в контроллере, но мне нужно использовать тот же объект autowiring в каком-то другом классе, который используется как класс задачи для кварца. Autowiring там не работает.Autowiring не работает вне контроллера

Я пробовал этот код, указанный ниже, но это не удалось. Во всех попытках он получает null за readXmlDao.

@Repository("updateTeam") 
public class TeamUpdate { 
    @Autowired 
    @Qualifier("readXmlDao") 
    ReadXmlDao readXmlDao; 

Пожалуйста, предложите решение, спасибо.

+0

у вас есть два отдельных проектов? как вы включаете Spring context.xml? –

+0

Является ли класс TeamUpdate тем же проектом, что и ваш контроллер? Или ваш покрывает ваш класс TeamUpdate? –

+0

Является ли кварц экземпляром класса TeamUpdate? Автоматическая проводка пружины будет работать только в том случае, если весна фактически создает класс. – beny23

ответ

1

Autowire работает в весеннем контексте (экземпляры классов управляются весной). Кварц создает свои собственные контексты (создает свои собственные экземпляры). Весне не нужно знать об этих классах и о том, почему автоуслуги не работают над ними.

Это проблема с конфигурацией весны/кварца, чем проблема с аннотацией класса.

0

В файле весеннего сервлета убедитесь, что вы сканируете правильные пакеты.

<context:component-scan base-package="your package here"/> 

Много раз у вас могут быть ваши контроллеры и ваши репозитории в разных пакетах. Обязательно сканируйте оба.

1

Весна будет Никогда Оставьте @Autowired цель null. Если он обрабатывает компонент и не может найти совпадение, он будет генерировать исключения.

Поскольку вы сообщаете нам, что это null, единственная возможность заключается в том, что Spring не, управляющий вашим объектом. Вы либо создаете объект TeamUpdate вручную, либо какой-либо другой процесс (а не Spring) создает его для вас.

+0

Спасибо! Ты спас мои часы. – Vivek

+0

@Vivek [Here's] (http://stackoverflow.com/questions/19896870/why-is-my-spring-autowired-field-null) более подробный пост. –

Смежные вопросы