Spring中Quartz的配置

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz:

首先我们来写一个被调度的类:

 

package com.yhcz.quartz;

public class QuartzJob

{

    public void work()

    {

         System.out.println("Quartz的任务调度!!!");

    }

}


Spring的配置文件:

 

 

<beans>    

        <!-- 要调用的工作类 -->

        <bean id="quartzJob" class="com.yhcz.quartz.QuartzJob"></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="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

            <property name="triggers">

                <list>

                    <ref bean="doTime"/>

                </list>

            </property>

        </bean>

    

</beans>

 

测试程序:


package com.yhcz.quartz;



import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;



public class MainTest

{

    /**

     * @param args

     */

    public static void main(String[] args)

    {

        System.out.println("Test start.");

        ApplicationContext context = new ClassPathXmlApplicationContext("quartz-config.xml");

        //如果配置文件中将startQuartz bean的lazy-init设置为false 则不用实例化

        //context.getBean("startQuartz");

        System.out.print("Test end..");

    }

}

 



 

你可能感兴趣的:(spring)