2 shuytu shuytu 于 2014.09.10 16:59 提问

spring mvc 开发模式下,使用Quartz如何实现

<? xml version="1.0" encoding="UTF-8" ?>

<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >

< beans >

<!-- 起动Bean -->

< bean id ="mytask" class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >

< property name ="triggers" >

< list >

< ref bean ="cronReportTrigger" />

</ list >

</ property >

</ bean >

<!-- 实际的工作Bean -->

< bean id ="TaskDetail" class ="test.TaskDetail" >
</ bean >

<!-- jobBean用于设定启动时运用的Bean与方法 -->

< bean id ="scheduledReportJobDetail" class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >

< property name ="targetObject" >

< ref bean ="TaskDetail" />

</ property >

< property name ="targetMethod" >

< value > sendTaskDetailMessage</ value >

</ property >

</ bean >

<!-- 定时器设定起动频率&启动时间我设的是每5秒起动一次 (0 0 4 * * ?每日四点起动.) -->

< bean id ="cronReportTrigger" class ="org.springframework.scheduling.quartz.CronTriggerBean" >

< property name ="jobDetail" >

< ref bean ="scheduledReportJobDetail" />

</ property >

< property name ="cronExpression" >

< value > 10,40 * * * * ? </ value >

</ property >

</ bean >

</ beans >]

程序能够找到mytask里面的方法,也能实现定时执行,如果mytask仅仅只是执行sendTaskDetailMessage方法,且方法里只有打印语句不会出任何问题。从某总程度上来说定时执行的功能可以实现。
但是在Spring mvc模式下,我的controller里面的方法中涉及到@注释注入的Service,通过Service来执行程序,导致Service一直报空指针异常!

Csdn user default icon
上传中...
上传图片
插入图片