方式一,jobDetail的bean利用MethodInvokingJobDetailFactoryBean 工厂包装 :  

    ()定义一个bean,执行具体的业务操作。
<bean id="updatePersonService" class="com.corop.packname.UpdatePersonService"/> ()定义一个jobDetail,执行业务操作的作业。
<bean id="updatePersonJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 作业要执行的业务操作 bean -->
<property name="targetObject">
<ref bean="updatePersonService" />
</property> <!-- 业务操作bean里面具体执行业务操作的方法-->
<property name="targetMethod">
<value>updatePerson</value>
</property>
<!-- 作业不并发执行 -->
<property name="concurrent">
<value>false</value>
</property>
</bean> ()定义一个触发器,根据时间表达式定时触发执行作业
<bean id="updatePersonTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 要触发执行的作业 bean -->
<property name="jobDetail">
<ref bean="updatePersonJob" />
</property> <!-- 触发作业的时间表达式 -->
<property name="cronExpression">
<!--"0 59 23 * * ?" 每天晚上23点59触发-->
<value> * * ?</value>
</property>
</bean> ()定义一个任务调度器
<!--lazy-init=false 容器启动时启动调度器,默认值, singleton='true'这个bean是单独存在的-->
<bean id="startQuertz" lazy-init="false" singleton='true' autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<!--触发器列表-->
<list>
<ref local="updatePersonTrigger"/>
</list>
</property>
<!--自动启动调度器器-->
<property name="autoStartup">
<value>true</value>
</property> </bean> 方式二,jobDetail采用继承QuartzJobBean的方式: ()定义的业务操作bean继承QuartzJobBean,重载方法 executeInternal(JobExecutionContext jobexecutioncontext) ,执行具体的业务操作。
class UpdatePersonService extends QuartzJobBean{
private Person person;
public void setPerson(Person person){
this.person = person;
} @Override
public void executeInternal(JobExecutionContext ctx){
throws JobExecutionException
//执行具体的业务操作
String param1 = ctx.getJobDetail().getJobDataMap().getString("param1");
} }
()定义jobDetail的bean :
<bean id = 'updatePersonJob' class= 'org.springframework.scheduling.quartz.JobDetailBean'>
<!--定义业务操作类-->
<property name="jobClass" value = 'com.corop.packname.UpdatePersonService' />
<!--定义执行业务操作需要的参数 -->
<property name="jobDataAsMap">
<map>
<entry key="timeout" value="" />
<!-- 此参数是一个bean -->
<entry key="person" value-ref = 'personBean' />
<!--可以从作业执行容器获取此参数-->
<entry key="param1" value="com.custom.package.ClassName"/>
</map>
</property>
</bean>
<bean id = 'personBean' class= 'com.corop.packname.Person'/> ()定义触发器,及()定义核心调度器 与 方式一同。

spring quartz 配置及说明的更多相关文章

  1. 使用spring+quartz配置多个定时任务

    Spring被用在了越来越多的项目中, quartz也被公认为是比较好用的定时器设置工具, 在这里通过一个demo说明如何使用spring和quartz配置多个定时任务. 环境: eclipse + ...

  2. spring quartz 配置实现定时任务 详解

    一. 编写定时任务JAVA类 比如: public class QuartzJob {     public QuartzJob(){         System.out.println(" ...

  3. spring quartz 配置

    quartz简介 各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务.任务调度本身涉及到多线程 ...

  4. spring quartz 配置多个定时任务

    1.配置文件-quartz-1.7.3jar   spring版本为3.1.3jar <?xml version="1.0" encoding="UTF-8&quo ...

  5. Spring+Quartz配置定时任务

    一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是出了名的任务调度框架,它可以与J2SE和J2EE应用程序相结合 ...

  6. Spring + Quartz配置实例

    Spring为创建Quartz的Scheduler.Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处.此外Spring还提供了一些便 ...

  7. 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

    1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...

  8. Spring+quartz 实现定时任务job集群配置

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

  9. Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群

    Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群 >>>>>>>>>>>>>> ...

随机推荐

  1. git add 的一点说明

    git add --cached 这里 --cached是什么意思呢?要解释清楚这个问题,我们必须先了解一个文件在git中的状态. [commit]----[stage]-----[checkout] ...

  2. openv+contrib配置总结

    本文转载于:https://www.cnblogs.com/wjy-lulu/p/6805557.html 开门见山的说:别用opencv3.0,这个版本添加扩展库不怎么好,能不能成功我不敢说,我是试 ...

  3. 在不同的浏览器使用不同的css样式,解决浏览器兼容问题

    区别IE6与FF:       background:orange;       *background:blue; 区别IE6与IE7:       background:green !import ...

  4. [转载]LeetCode: Gray Code

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  5. 050——VUE中使用js库控制vue过渡动作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. ES6学习一 JS语言增强篇

    一 背景 JavaScript经过二十来年年的发展,由最初简单的交互脚本语言,发展到今天的富客户端交互,后端服务器处理,跨平台(Native),以及小程序等等的应用.JS的角色越来越重要,处理场景越来 ...

  7. 严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationT

    严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationT (2012 ...

  8. 第一个openGL程序

    一.工具的安装 因为要写C++程序,为了便捷,这里我安装的Visual Studio: 免费使用90天!安装好了之后,我们要为我们的开发安装相应的工具集: 因为我是要在windows上跑的,所以选择如 ...

  9. 这是C语言结课前(期末考试之前)写给牛晓霞的一封信!

    致尊敬的牛晓霞老师: 这是黄领衫的感想,也是想告诉你的话! 在老师说要给班里写得好的人发黄领衫的时候,我当时的想法是我很有可能拿到这份奖品的,怎么说呢,算是一种自信吧,或是对自己的态度的认可.虽然我能 ...

  10. I.MX6 Manufacturing Tool V2 (MFGTool2) Emmc mksdcard.sh hacking

    #!/bin/sh # 参考文章: # . MFGTool Emmc mksdcard.sh MFGTool Emmc mksdcard.sh comment # http://jordonwu.gi ...