Quartz —— Spring 环境下的使用
一、在 Spring 环境下 Quartz 的使用超级简单。
二、具体使用
1.添加对应的 spring-quartz 的配置文件。
2.新建要执行定时任务的目标类和目标方法,不需要继承 Job 接口。如:
/**
* @author solverpeng
* @create 2016-09-26-10:21
*/
public class MyJob2 { public void targetMethod() {
System.out.println("hello world, quartz, data:" + new Date());
} }
3.在 spring-quartz.xml 文件中配置
(1)配置执行定时任务的目标类和目标方法。
(2)配置 JobDetail,需要指定目标类和目标方法。
(3)配置 Trigger,并在 Trigger 中指定 jobDetail,如果是 CronTrigger ,需要指定 Cron 表达式。
(4)配置 Scheduler,指定 trigger ,以及一些别的属性。
<?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 class="com.nucsoft.quartz.job.MyJob2" id="myJob"/> <!-- 配置 JobDetail -->
<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" id="jobDetail">
<property name="targetObject" ref="myJob"/>
<property name="targetMethod" value="targetMethod"/>
</bean> <!-- 配置 CronTrigger -->
<bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean" id="cronTrigger">
<property name="jobDetail" ref="jobDetail"/>
<property name="cronExpression" value="0/5 * * ? 9 *"/>
</bean> <!-- 配置 Scheduler -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" id="scheduler">
<property name="triggers">
<array>
<ref bean="cronTrigger"/>
</array>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">10</prop>
</props>
</property>
<property name="startupDelay" value="10"/>
</bean> </beans>
说明:Spring 进一步降低了使用 Quartz 的难度,为创建 Quartz 的 JobDetail,Trigger,Scheduler 提供了便利的 FactoryBean,以便能够在 Spring 容器中注入。
(1)通过 MethodInvokingJobDetailFactoryBean 来创建 JobDetail。
(2)通过 CronTriggerFactoryBean 来创建 Trigger。
(3)通过 SchedulerFactoryBean 来创建 Scheduler。
注意:
(1)Scheduler 中的属性 quartzProperties 可以指定 org\quartz\quartz.properties 文件中的 key。
(2)Scheduler 中的属性 startupDelay 指定容器启动多久后开始指定定时任务。
(3)第一次启动定时任务和第二次执行定时任务之间时间间隔与表达式定义不同是因为,第一次是启动定时器,第二次才是真正的执行定时任务。
4.测试
/**
* @author solverpeng
* @create 2016-09-26-10:31
*/
public class QuartzTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-quartz.xml");
} }
只需要启动容器即可。
三、总结
介绍了 Spring 环境下 Quartz 的使用,对比发现,在 Spring 下的使用更为简单,也学到了 Spring 整合第三方的内容时,大多是通过 FactoryBean 的方式,真正整合的是第三方
本身的容器,如 Shiro 的 SecurtyManager,也如 Quartz 的 Scheduler。大容器整合小容器,小容器是一个独立的单元,简洁明了。
Quartz —— Spring 环境下的使用的更多相关文章
- Shiro —— Spring 环境下的使用
一.使用 1.搭建基础环境 (1)导入 Spring 和 Shiro 的 Jar 包 正常导入 spring jar包 导入日志包 log4j-1.2.15.jar slf4j-api-1.6.1.j ...
- 在spring环境下集成ActiveMQ
1.参考文献 Spring集成ActiveMQ配置 Spring JMS异步发收消息 ActiveMQ 2.环境 在前面的一篇ActiveMQ入门实例中我们实现了消息的异步传送,这篇博文将如何在spr ...
- MyBatis在非Spring环境下第三方DataSource设置-Druid篇
首先在ITEye上面看到一个同标题文章,在此说明,此文并非转载自 http://iintothewind.iteye.com/blog/2069522 ,因为这篇文章根本就是错误的,照着上面做,工程可 ...
- Mybatis在非spring环境下配置文件中使用外部数据源(druidDatasource)
Spring环境下, MyBatis可以通过其本身的增强mybatis-spring提供的org.mybatis.spring.SqlSessionFactoryBean来注入第三方DataSourc ...
- MyBatis在Spring环境下的事务管理
MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能.但是由于它本身也有一些缓存.事务管理等功能,所以实际使用中还是会碰到一些问题--另外,最近接触了JFin ...
- Redis(十五)Redis 的一些常用技术(Spring 环境下)
一.Redis 事务与锁机制 1.Redis的基础事务 在Redis中开启事务的命令是 multi 命令, 而执行事务的命令是 exec 命令.multi 到 exec 命令之间的 Redis 命令将 ...
- 七年开发小结MyBatis 在 Spring 环境下的事务管理
MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能.但是由于它本身也有一些缓存.事务管理等功能,所以实际使用中还是会碰到一些问题——另外,最近接触了JFin ...
- 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用
一.什么是 RestTemplate? RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(例如JDK HttpURLConnection,Apache HttpCo ...
- Junit运行在Spring环境下
@RunWith(SpringJUnit4ClassRunner.class)让测试运行于Spring测试环境 @ContextConfiguration 用来指定加载的Spring配置文件的位置,会 ...
随机推荐
- IL异常处理
异常处理在程序中也算是比较重要的一部分了,IL异常处理在C#里面实现会用到一些新的方法 1.BeginExceptionBlock:异常块代码开始,相当于try,但是感觉又不太像 2.EndExcep ...
- 微信小程序开发日记——高仿知乎日报(下)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 在centos7(EL7.3 即 kernel-3.10.0-514.X )上安装BCM4312无线网卡驱动要注意的问题
我新装的centos7主机无法使用里面自带的网卡,查询后发现网卡型号为BCM4312.我在看资料安装的过程中遇到了些问题,纠结了好久,现在分享下要注意的点,为后来的遇到同样问题的人提供点帮助.现在开始 ...
- 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布
距离上一篇OpenAuth.net的文章已经有5个多月了,在这段时间里项目得到了很多朋友的认可,开源中国上面的Star数接近300,于是坚定了我做下去的信心.最近稍微清闲点,正式推出1.0版,并在阿里 ...
- JQuery插件定义
一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页上写一写$("#"),$("."),写了几年就对别人说非常熟悉JQuery.我曾经也是这样的人 ...
- FreeBinary 格式说明
说明 简称FB格式,是一个简单的二进制文件打包格式. 作用是FBX.unity.js等交换的一个中间格式. 由李剑英制定,易于读取,易于扩展 相应的代码可以用svn取得 SVN:http://code ...
- webstorm license key
JetBrains WebStorm注册码 UserName: William License Key : ===== LICENSE BEGIN ===== 45550-12042010 00001 ...
- java遇到 Check $M2_HOME 问题 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
步骤: 1.添加M2_HOME的环境变量 2.Preference->Java->Installed JREs->Edit 选择一个jdk 3.添加 -Dmaven.multiMod ...
- JS创建对象篇
JS创建对象篇 Object构造函数创建 var person = new Object(); person.name = "Tom"; person.age = 10; pers ...
- C#设计模式-状态者模式
一. 状态者(State)模式 每个对象都有其对应的状态,而每个状态又对应一些相应的行为,如果某个对象有多个状态时,那么就会对应很多的行为.那么对这些状态的判断和根据状态完成的行为,就会导致多重条件语 ...