




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、与使用 Methodi nvok in.Spring 中使用 Quartz 的 2种方法(extends QuartzJobBean开发环境:Spring2.0。如果包类没有 Quartz包,则需要加入到类路径。方法A:exte nds QuartzJobBea n1 :定义任务(extends QuartzJobBean )p ackage onlyfun.bb.Quartz;import org.quartz.JobExecutionContext;import org.s pringframework.scheduling.quartz.QuartzJobBean;p ublic cla
2、ss QuartzDemo extends QuartzJobBean private JobData jobData; /JobData 为自定义类p ublic void executelnternalQobExecutionContext context)System.out. pnntln(jobData.getData()+" is executed");p ublic JobData getJobData() return jobData;p ublic void setJobDataQobData jobData) this.jobData = jobData
3、;JobData.java: p ackage onlyfun.bb.Quartz;import java.util.Date;p ublic class JobData p ublic String getData()return "Data from JobData at "+new Date().toString();2:配置 <!- use Quartz -> <bean id="someData" class="onlyfun.bb.Quartz.JobData">v/bean> <bea
4、n id="jobDetailBean" class="org.s pringframework.scheduling.quartz.JobDetailBean"vprop erty name="jobClass" value-'onlyfun.bb.Quart z. QuartzDemo"></prop erty>vprop erty name="jobDataAsMa p"><ma p><entry key="jobData" va
5、lue-ref="someData">v/entry></ma p>v/prop erty> </bean> vbean id="si mpl eTriggerBean" class="org.s pringframework.scheduling.quartz.Si mpl eTriggerBean"vprop erty name="jobDetail" ref="jobDetailBean">v/prop erty>vprop erty
6、name="re peatinterval" value="2000">v/prop erty>vprop erty name="startDelay" value="1000">v/prop erty>vbeanv/bean>id="scheduledFactoryBean"class="org.s pringframework.scheduling.quartz.SchedulerFactoryBean">vproperty n ame
7、="triggers">vlist>vref bean="si mpl eTriggerBean"/v/list>v/prop erty> v/bean>注意:在 JobDetailBean的jobClass属性必须提供Job的类名称,而不是 Job类的实例。Job所需的数据可以在jobDataAsMap属性中设置。在任务的周期指定上,使用SimpleTriggerBean 类来指定,与 TimerTask指定方式类似。排定 Job 用 SchedulerFactoryBean 类。完成设置后,只要在启动 Spring并读取
8、定义文件后,计划任务就会执行。3 :测试P ackage onlyfun.bb.Quartz;import java.io.*;import org.quartz.Scheduler;import org.quartz.SchedulerExce ption;import org.s pringframework.context.A pp licationContext;import org.s pringframework.context.s uppo rt.Class PathXmlA pp licationContext; p ublic class TestQuartzDemo p u
9、blic static void main(Stnng args) throws lOExce ption / TODO Auto-generated method stubApp licationContext context=new Class PathXmlA pp licationContext("a pp licationContext.xml");System.out.printing 启动 Task:");System.out.println("请输入 exit 结束 Task:");/A处BufferedReader reade
10、r=new BufferedReader(new Inpu tStreamReader(System.in);while(true)if(reader.readLine().equals("exit") break; /此句可以放在A处Scheduler scheduler=(Scheduler)context.getBean("scheduledFactoryBean");try scheduler.shutdown(); catch (SchedulerExce ption e) / TODO Auto-generated catch block e
11、.p rintStackTrace();4 :测试分析: 使用SimpleTriggerBean类只能做简单Job与Job之间的执行周期指定,如果需要在指定时间执行,可以 使用 CronTriggerBean 类。修改配置文件如下:<!- use Quartz -> <bean id="someData" class="onlyfun.bb.Quartz.JobData"></bean> <bean id="jobDetailBean" class="org.s pringframe
12、work.scheduling.quartz.JobDetailBean"vprop erty name="jobClass" value="onlyfun.bb.Quart z. QuartzDemo"></prop erty>vprop erty name="jobDataAsMa p"><ma p><entry key="jobData" value-ref="someData"></entry></ma p>
13、;v/prop erty> </bean>vprop erty name="jobDetail" ref="jobDetailBean">v/prop erty>vproperty name="cronEx pression" value="0 37-38 15 * * ?"/> v/bean>vbeanid="scheduledFactoryBean"class="org.s pringframework.scheduling.quartz.
14、SchedulerFactoryBean"vproperty n ame="triggers">vlist>vref bean="cronTriggerBean"/>v/list>v/prop erty> v/bean>注意:CronTriggerBean 的cronExpression属性指定格式:至少6个时间元素,上面表示每天的15 : 37-38分执行1次任务。时间元素(按照顺序) 秒(0-59 ): 分(0-59 ): 小时(0-23 ): 每月第几天(1-31 ): 月(1-12 或 JAN-DEC
15、 ): 每星期第几天(1-7或SUN-SAT ): 年(1970-2099): 其中:不用设置的用” ”.(1)每月第几天和每星期第几天是互斥的,两个只能设置1个。如果有好几个时间点,可以使用”,”符号,例 如:”0 0 10,12,14 * * ? ”表示每天的10时,12时,14时执行Job.(2)对于连续时间可以使用”-”符号。例如:”0 10,12,14 1-15 * ? ”表示每月的1到15日10时,12时,14时执 行 Job.时间格式的年可以不用制定。例如”0 0 10,12,14 ? MON 2006 ”表示2006年每星期一的10时,12时,14 时执行Job.B :不需要继
16、承的任务制定方法使用 Spring 不一定需要继承 QuartzJobBean 类来定义1个 Job 类,可以使用MethodInvokingJobDetailFactoryBean来直接指定执行某个对象的方法。修改如下:1 :建立Job类(普通类)P ackage onlyfun.bb.Quartz;/*使用 MethodlnvokingJobDetailFactoryBean类制定任务:* 1 个 Job 类:没有继承 QuartzJobBean * author Administrator*/ p ublic class QuartzDemo2 p rivate JobData jobD
17、ata;p ublic void execute()System.out .p rintln(jobData.getData()+ "is executed");p ublic JobData getJobData() return jobData;p ublic void setJobDataQobData jobData) this.jobData = jobData;2:修改配置<bean id="someData" class="onlyfun.bb.Quartz.JobData">v/bean> <b
18、ean id="someJob" class="onlyfun.bb.Quart z. QuartzDemo2">vprop erty name="jobData" ref="someData"></prop erty><bean</bean>id="jobDetailBean"class="org.s pringframework.scheduling.quart z.MethodlnvokingJobDetailFactoryBean">vp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南株洲茶陵县总工会工人文化宫建设项目专业技术人员招聘考前自测高频考点模拟试题及答案详解(网校专用)
- 2025河北保定市定兴县国有公司领导人员招聘2人考前自测高频考点模拟试题及答案详解(有一套)
- 2025年专用X射线机项目建议书
- 2025湖北恩施来凤县星熠文化科技有限责任公司招聘财务人员的考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025辽宁能源控股集团所属能源投资集团拟聘人员模拟试卷完整参考答案详解
- 2025年南平武夷山市公安局公开招聘铁骑女性警务辅助人员6人模拟试卷完整答案详解
- 2025昆明市盘龙职业高级中学烹饪教师招聘(1人)模拟试卷附答案详解(典型题)
- 2025年船用推进电机项目建议书
- 2025年黄骅市市级机关公开遴选考试真题
- 2025北京化工大学化办公室(中心)招聘1人模拟试卷及答案详解(典优)
- 江浙皖高中(县中)发展共同体2025-2026学年高三上学期10月联考技术试题(含答案)
- 2025贵州盐业(集团)遵义有限责任公司招聘15人笔试备考试题及答案解析
- EMS供应商对比方案报告
- 神奇的加密术教学设计-2025-2026学年初中数学北师大版2024八年级上册-北师大版2024
- 《现代施工工程机械》课件(共十四章)
- 价格波动对利润影响分析-洞察及研究
- 金属圆锯机操作安全规程标准版
- 广西检测协会试题(钢结构检测综合)判断题(1-375)
- 医院感染判定标准与流程
- 我的祖国音乐教学课件
- 中医学课件幻灯片模板
评论
0/150
提交评论