请教各位一个SPRING注解的问题
我有一个BEAN用SPRING的注解,在CONTROLER里用@Autowired正常,但是我写了一个定时器,用@Autowired取就是空指针错。
spring配置文件:
<context:annotation-config />
<context:component-scan base-package="com.waps.alipay" />
<import resource="task.xml"/>
=============================================================
package com.waps.alipay.action;
@Controller
public class HomeController {
@Autowired
private Config config;
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info(config.log_path);
}
}
=================================================================
定时器代码
package com.waps.alipay.job;
public class NoticeJob {
@Autowired
private Config config;
public void run() {
logger.info("run NoticeJob..."+config.log_path);
}
}
=================================================================
定时器task.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 要调用的工作类 -->
<bean id="NoticeJob" class="com.waps.alipay.job.NoticeJob"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="NoticeJob"/>
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>run</value>
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask"/>
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<value>10 * * * * ?</value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- <ref bean="doTime"/> -->
<ref bean="doTime"/>
</list>
</property>
</bean>
</beans>