Spring MVC quartz定时执行问题

第一次使用Spring Mvc框架做项目,由于数据量较大,需要设置每天半夜固定的时间点执行数据转存,但是由于Controller里定时执行的方法中采用的@Service注入,一直报Service空指针异常,问题在半个月前我发的一篇求助帖中有详细说明。

http://ask.csdn.net/questions/151948

帖子放了半个多月没人解答,经过长时间查找资料,终于能够实现了,亲测可用,暂时不知道之前的空指针异常问题出在哪里,先奉上解决方案。

 <!-- 要调用的工作类 -->  
   <bean id="glybController" class="org.mnis.web.GlybController"></bean>  
   <!-- 定义调用对象和调用对象的方法,以上为管理员表Controller -->  
   <bean id="jobtask"  
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
       <!-- 调用的类 -->  
       <property name="targetObject">  
           <ref bean="glybController" />  <!-- 对应调用工作类的bean id-->
       </property>  
       <!-- 调用类中的方法 -->  
       <property name="targetMethod">  
            <value>initSys</value>   <!-- 对应调用工作类的 GlybController里要实现定时执行的方法initSys实现系统初始化,本方法为定时执行的方法-->
        </property> 
   </bean>  
    <!-- 定义触发时间 -->  
   <bean id="doTime"  
       class="org.springframework.scheduling.quartz.CronTriggerBean">  
       <property name="jobDetail">  
           <ref bean="jobtask" />  
       </property>  
       <!-- cron表达式 -->  
       <property name="cronExpression">  
            <!-- 每各执行一次-->  
           <!-- <value>0 */1 * * * ?</value>   -->
           <value>0 0 10 * * ?</value>  <!-- 定义在每天早上10点自动执行 -->
       </property>  
   </bean>  
   <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->  
   <bean id="startQuartz" lazy-init="false" autowire="no"  
       class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
       <property name="triggers">  
           <list>  
               <ref bean="doTime" />  
            </list>  
       </property>  
   </bean>  

至于controller里面的方法如何写还有web.xml里对于spring的配置,我就不给大家贴出来了。

controller里面是采取的Service注入的方法

@Resource
private BrbService brbService;


@RequestMapping("/initSys.do")
public ModelAndView initSys() throws Exception{

       this.brbService.saveOrUpdateBrb(brb);

}

以前的方法一直都是可以实现定时执行,但是在    this.brbService.saveOrUpdateBrb(brb);就会报空指针异常,显示brbService为空。现在终于解决了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值