在J2EE项目开发中,可能需要定时任务调度的功能。下面介绍在J2EE 中利用Spring 提供的Quartz组件来实现定时任务调度功能。首先要在spring的配置文件applicationContext.xml中加入Quartz的相关配置,代码如下:
<!-- 定义定时器中要执行的任务,这个类在自己程序中定义 -->
<bean id="quartzJob" class="com.ruanko.cjs.job.QuartzJob"/>
<!-- 将要执行的任务加入Quartz任务代理类中-->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="quartzJob"></ref>
</property>
<property name="targetMethod">
<!--执行任务类中的方法,此处就是com.ruanko.cjs.job.QuartzJob类中的work方法-->
<value>work</value>
</property>
</bean>
<!-- 定义定时执行时间,执行频率的设定可参考cronExpression帮助文档 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask"></ref>
</property>
<property name="cronExpression">
<!-- 定时器每10分钟执行一次-->
<value>0 0/10 0-23 * * ?</value>
</property>
</bean>
<!-- 任务调度管理类,如果将lazy-init=false 那么容器启动就会执行调度程序 -->
<bean id="startQuartz" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime"></ref>
</list>
</property>
</bean>
另外使用Quartz组件须要引入quartz-all-1.6.1.jar,可以到附件中下载!