码迷,mamicode.com
首页 > 编程语言 > 详细

Spring + Quartz配置实例

时间:2014-09-03 14:50:06      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   使用   java   ar   文件   art   div   

Spring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean包装成合法的任务。Spring进一步降低了使用Quartz的难度,能以更具Spring风格的方式使用Quartz。概括来说它提供了两方面的支持: 
    1)为Quartz的重要组件类提供更具Bean风格的扩展类; 
    2)提供创建Scheduler的BeanFactory类,方便在Spring环境下创建对应的组件对象,并结合Spring容器生命周期进行启动和停止的动作。 
配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <!-- 要调用的工作类 -->
    <bean id="quartzJob" class="test.Task"></bean>
    <!-- 定义调用对象和调用对象的方法 -->
    <bean id="jobtask"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 调用的类 -->
        <property name="targetObject">
            <ref bean="quartzJob" />
        </property>
        <!-- 调用类中的方法 -->
        <property name="targetMethod">
            <value>work</value>
        </property>
    </bean>
    <!-- 定义触发时间 -->
    <bean id="doTime"
        class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="jobtask" />
        </property>
        <!-- cron表达式 -->
        <property name="cronExpression">
            <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
        </property>
    </bean>
    <!-- 总管理类 如果将lazy-init=‘false‘那么容器启动就会执行调度程序  -->
    <bean id="startQuertz" lazy-init="false" autowire="no"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="doTime" />
            </list>
        </property>
    </bean>
</beans>

要调度的工作类:

public class Task{
    public void work() {
        System.out.println("Quartz的任务调度!");
    }
}

主测试文件:

public class QuartzTest {
    public static void main(String[] args) {
        System.out.println("Test start.");
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
        System.out.print("Test end..\n");

    }

}

参考文章【http://www.cnblogs.com/kay/archive/2007/11/02/947372.html
           【http://www.diybl.com/course/3_program/java/javajs/2008530/118164.html

Spring + Quartz配置实例

标签:blog   http   io   使用   java   ar   文件   art   div   

原文地址:http://www.cnblogs.com/caroline4lc/p/3953602.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!