小奋斗 - 轻松学习从此开始!
IT小奋斗群 QQ群:62017228

Java Spring4集成Quartz2源码分享

Spring Framework整合Quartz Scheduler进行任务调度,Spring提供了Quartz相关API支持类,简化了对Quartz操作。通过Spring配置文件配置触发条件,去执行spring bean中的相关方法。

开发环境:

JDK1.6 + Eclipse4.X + Spring4.2.5 + Quartz2.1.7


相关工具包如下:

spring4.2.5:http://www.what21.com/a/pan/java.lib_spring-framework-4.2.5.html

commons-logging-1.2: http://www.what21.com/a/pan/java.lib_commons-logging-1.2.html

quartz-2.1.7:http://www.what21.com/a/pan/java.lib_quartz-2.1.7.html

源码为eclipse工程,相关工具包需要手动引入。


Spring配置Quartz作业:

<!-- 执行任务 -->
<bean id="job" class="com.what21.spring4.What21Job" />
 
<!-- jobDetail -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <!-- 调用的类 -->
    <property name="targetObject" ref="job" />
    <!-- 调用类中的方法 -->
    <property name="targetMethod" value="doJob" />
    <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
    <property name="concurrent" value="false"/>
</bean>
    
<!-- 触发器 -->
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
    <property name="jobDetail" ref="jobDetail"/>
    <property name="repeatCount">
        <value>8</value>
    </property>
    <property name="repeatInterval">
        <value>1000</value>
    </property>
    <property name="startDelay">
        <value>4</value>
    </property>
</bean> 

<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <ref bean="simpleTrigger"/>
    </property>
</bean>

本例中,job Bean中doJob方法会定时去作业,触发条件由simpleTrigger Bean来指定。

其他的配置以及演示,请下载源码查看。

我来评几句
登录后评论

已发表评论数(0)