Spring整合Quartz

来源:互联网 发布:linux 黑客技术 编辑:程序博客网 时间:2024/06/16 17:20

摘自百度百科

Quartz是OpenSymphony开源组织在Job
scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或
EJBs。Quartz的最新版本为Quartz 2.3.0。

1、在pom中引入quartz依赖

<dependency>            <groupId>org.quartz-scheduler</groupId>            <artifactId>quartz</artifactId>            <version>2.2.3</version>        </dependency>        <dependency>            <groupId>org.quartz-scheduler</groupId>            <artifactId>quartz-jobs</artifactId>            <version>2.2.3</version></dependency>

以下是applicationContext.xml中配置的
2、配置作业对象,指定一个要使用的类和调用这个类中的哪个方法
targetObject:要使用的类,这个类要已经交给Spring管理的(bean标签或者注解都可以)
targetMethod:要使用的这个类中的方法

    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">            <property name="targetObject" ref="myJob"></property>            <property name="targetMethod" value="sendEmail"></property>        </bean>

3、配置触发器,设定作业对象和执行周期
jobDetail:引入一个作业对象
cronExpression:执行周期(使用cron表达式配置)

    <bean id="trigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">        <property name="jobDetail" ref="jobDetail"></property>        <property name="cronExpression">            <!-- 每五秒执行一次 (Cron表达式)-->            <value>0/5 * * * * ?</value>        </property>    </bean>

4、配置定时调度容器对象,把触发器交给容器去创建和执行(引入刚才的触发器对象)。
list里面可以写多个触发器对象

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">        <property name="triggers">            <list>                <ref bean="trigger"/>            </list>        </property>    </bean>
原创粉丝点击