定时批处理作业是J2EE企业应用里很重要的一环,用来在晚间进行财务挂账,数据转存,新闻联播等等操作。
而在Spring里,已经很好的集成了Quartz,简单到像配cron一样,在xml文件里面配一下时间就可以自动执行,不需要写一行代码。
<
bean
id
="methodInvokingJobDetail"
class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
< property name ="targetObject" >< ref bean ="financeDAO" /></ property >
< property name ="targetMethod" >< value > confirmOrder </ value ></ property >
</ bean >
< bean id ="cronTrigger" class ="org.springframework.scheduling.quartz.CronTriggerBean" >
< property name ="jobDetail" >< ref bean ="methodInvokingJobDetail" /></ property >
< property name ="cronExpression" >< value > 0 0 6,12,20 * * ? </ value ></ property >
</ bean >
< bean class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
< property name ="triggers" >< list >< ref local ="cronTrigger" /></ list ></ property >
</ bean >
class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
< property name ="targetObject" >< ref bean ="financeDAO" /></ property >
< property name ="targetMethod" >< value > confirmOrder </ value ></ property >
</ bean >
< bean id ="cronTrigger" class ="org.springframework.scheduling.quartz.CronTriggerBean" >
< property name ="jobDetail" >< ref bean ="methodInvokingJobDetail" /></ property >
< property name ="cronExpression" >< value > 0 0 6,12,20 * * ? </ value ></ property >
</ bean >
< bean class ="org.springframework.scheduling.quartz.SchedulerFactoryBean" >
< property name ="triggers" >< list >< ref local ="cronTrigger" /></ list ></ property >
</ bean >
上面这段配置文件规定了在早上6点和晚上8点执行financeDAO对象的confirmOrder()方法
附:cronExpression配置说明
字段 | 允许值 | 允许的特殊字符 | ||
---|---|---|---|---|
秒 | 0-59 | , - * / | ||
分 | 0-59 | , - * / | ||
小时 | 0-23 | , - * / | ||
日期 | 1-31 | , - * ? / L W C | ||
月份 | 1-12 或者 JAN-DEC | , - * / | ||
星期 | 1-7 或者 SUN-SAT | , - * ? / L C # | ||
年(可选) | 留空, 1970-2099 | , - * / |