Spring集成Quartz
来源:互联网 发布:apache服务器安装包 编辑:程序博客网 时间:2024/06/08 12:14
Spring集成Quartz有两种方法:
JobDetailBean
MethodInvokeJobDetailFactoryBean
在集成quartz之前有两个包是必须要引入的:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version > 4.3.3.RELEASE</version ></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.3.RELEASE </version></dependency>
当然也少不了Quartz:
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version></dependency><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version></dependency>
- JobDetailBean方式集成
配置文件如下spring-task.xml如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"> <property name="jobClass" value="cn.tonghao.task.TaskTest"></property> <property name="durability" value="true"></property> </bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="jobDetail"></property> <property name="startDelay" value="3000"></property> <property name="cronExpression" value="0/5 * * * * ?"></property> </bean> <bean id="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTrigger"></ref> </list> </property> </bean></beans>
其中cn.tonghao.task.TaskTest是任务类,该类需要继承QuartzJobBean或者实现Job接口。Demo如下:
public class TaskTest implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("在时间"+new Date()+"调度了任务"); }}
2.MethodInvokeJobDetailFactoryBean方式集成
配置文件除了jobDetail这个bean不一样和execute方法(其他方法名也可以,方法中不要参数,类不需要继承Job接口)不一样外,其他都一样:
<bean id="jobClass" class="cn.tonghao.task.TaskTest2"></bean><bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="jobClass"></property> <property name="targetMethod" value="execute"></property> <property name="concurrent" value="false"></property></bean>
3.当在任务中使用@Resource注入service的时候,第一种方式情况下该service为空,原因是任务bean是有quartz创建的,不受spring管理,无法使用spring注入的service。根据网上的说法,替换掉SchedulerFactoryBean中的jobFactory,即使用自定义的jobFactory,继承AdaptableJobFactory接口。但根据实际测试,似乎并没有效果。而在第二种方式下则成功注入。
参考文献:
【1】http://www.cnblogs.com/LiuChunfu/p/5598610.html
阅读全文
0 0
- Spring 3 - Quartz - 集成
- Spring集成Quartz
- spring 3.0集成 quartz
- spring集成quartz
- Spring集成Quartz
- 集成spring和quartz
- Spring集成Quartz实战
- spring集成quartz
- spring集成 quartz
- Spring集成quartz
- Quartz集成Spring框架
- spring内集成quartz
- spring-boot集成Quartz
- Quartz+Spring集成配置
- spring集成quartz
- Spring中集成quartz
- Quartz的spring集成
- Spring 集成Quartz
- AndroidViewAnimations任何控件的动画库
- 软切换、硬切换,垂直切换、水平切换
- gulp 插件
- openvz simfs to ploop
- 为何学这么多技术,却做不好Coder!
- Spring集成Quartz
- CALL STACK TRACE GENERATION
- STL中的for_each()函数
- 修复 Linux 下 sogou 输入法突然奔溃无法使用
- iOS 监听键盘的弹出,收起,并且拿到键盘的高度
- java设计模式总结
- Spring jdbcTemplate 获取insert后主键自增的表的主键id
- Python学习笔记【六】——《python基础教程》:: 抽象
- 面向对象设计的 10 条戒律