Spring
的
scheduling.quartz
包中对
Quartz
框架进行了封装,使得开发时不用写任何
QuartSpring
的代码就可以实现
定时任务。
Spring
通过
JobDetailBean
,
MethodInvokingJobDetailFactoryBean
实现
Job
的定义。后者更加实用,只需指定要运行的类,和该类中要运行的方法即可,
Spring
将自动生成符合
Quartz
要求的
JobDetail
。
在上一篇文章《
Quartz 框架快速入门(三)
》中我们将示例迁移到
Web
环境下了,但使用的是
Quartz
的启动机制,这一篇中我们将让
Web
服务器启动
Spring
,通过
Spring
的配置文件来进行任务的调度
1,
创建一个
Web
项目,
加入
spring.jar
,
quartz-1.6.0.jar
,
commons-collections.jar
,
jta.jar
,
commons-logging.jar
这几个包
.
2,
创建一个类,在类中添加一个方法
execute,
我们将对这个方法进行定时调度.
package
com.vista.quartz;
import
java.util.Date;
import
org.apache.commons.logging.Log;
import
org.apache.commons.logging.LogFactory;
import
org.quartz.JobExecutionContext;
import
org.quartz.JobExecutionException;
public
class
HelloWorld
{
private
static
Log logger
=
LogFactory.getLog(HelloWorld.
class
);
//
日志记录器
public
HelloWorld()
{
}
public
void
execute()
{
logger.info(
"
Kick your ass and Fuck your mother! -
"
+
new
Date());
}
}
2. Spring
配置文件
applicationContext.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-2.0.xsd"
>
<!--
要调用的工作类
-->
<
bean
id
="quartzJob"
class
="com.vista.quartz.HelloWorld"
></
bean
>
<!--
定义调用对象和调用对象的方法
-->
<
bean
id
="jobtask"
class
="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
>
<!--
调用的类
-->
<
property
name
="targetObject"
>
<
ref
bean
="quartzJob"
/>
</
property
>
<!--
调用类中的方法
-->
<
property
name
="targetMethod"
>
<
value
>
execute
</
value
>
</
property
>
</
bean
>
<!--
定义触发时间
-->
<
bean
id
="doTime"
class
="org.springframework.scheduling.quartz.CronTriggerBean"
>
<
property
name
="jobDetail"
>
<
ref
bean
="jobtask"
/>
</
property
>
<!--
cron表达式
-->
<
property
name
="cronExpression"
>
<
value
>
10,15,20,25,30,35,40,45,50,55 * * * * ?
</
value
>
</
property
>
</
bean
>
<!--
总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序
-->
<
bean
id
="startQuertz"
lazy-init
="false"
autowire
="no"
class
="org.springframework.scheduling.quartz.SchedulerFactoryBean"
>
<
property
name
="triggers"
>
<
list
>
<
ref
bean
="doTime"
/>
</
list
>
</
property
>
</
bean
>
</
beans
>
3,
先在控制台中对上面的代码进行测试,我们要做的只是加载
Spring
的配置文件就可以了,代码如下
:
package
com.vista.quartz;
import
org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
public
class
Test
{
public
static
void
main(String[] args)
{
System.out.println(
"
Test start.
"
);
ApplicationContext context
=
new
ClassPathXmlApplicationContext(
"
applicationContext.xml
"
);
//
如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
//
context.getBean("startQuertz");
System.out.print(
"
Test end..
"
);
}
}
4,
然后将
Web.xml
修改如下,让
tomcat
在启动时去初始化
Spring
:
<?
xml version="1.0" encoding="UTF-8"
?>
<
web-app
version
="2.4"
xmlns
="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
<
context-param
>
<
param-name
>
contextConfigLocation
</
param-name
>
<
param-value
>
/WEB-INF/classes/applicationContext.xml
</
param-value
>
</
context-param
>
<
servlet
>
<
servlet-name
>
SpringContextServlet
</
servlet-name
>
<
servlet-class
>
org.springframework.web.context.ContextLoaderServlet
</
servlet-class
>
<
load-on-startup
>
1
</
load-on-startup
>
</
servlet
>
<
welcome-file-list
>
<
welcome-file
>
index.jsp
</
welcome-file
>
</
welcome-file-list
>
</
web-app
>
5,
最后启动
Tomcat,
测试结果如下图所示:
作者:洞庭散人
出处:http://phinecos.cnblogs.com/
本博客遵从Creative Commons Attribution 3.0 License
,若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接URL。
分享到:
相关推荐
### Quartz框架快速入门详解 #### 一、Quartz框架简介 Quartz是一个开源的作业调度框架,用于开发Java应用程序。它提供了强大的触发器(Trigger)机制用于关联作业(Job),同时还具备灵活的表达式用于配置定时...
Quartz 框架快速入门 在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Scheduler
NULL 博文链接:https://wangrl.iteye.com/blog/1125327
Quartz框架是一款强大的开源任务调度库,广泛应用于Java环境下的定时任务管理。要开始使用Quartz,首先需要在项目中引入必要的依赖。基础依赖是quartz-<version>.jar,这是Quartz的核心库。除此之外,根据你的需求,...
本文将引导您快速入门 Quartz 框架,了解其基本使用方法。 首先,要开始使用 Quartz,您需要从官方网站下载对应的 JAR 包,通常为 quartz-<version>.jar。除此之外,根据您的需求,Quartz 可能还需要一些第三方库,...
Quartz框架的配置文件quartz.properties文件是Quartz框架的核心配置文件,它包括了Quartz框架的所有配置信息。你可以通过这个文件来配置Quartz框架的各种参数,以满足你的需求。 在使用Quartz框架时,你需要了解...
2. 简单易用:Quartz框架易于使用和配置,开发者可以快速地创建和调度作业。 3. 高度灵活:Quartz框架支持多种作业调度模式,包括简单触发器、 cron 触发器、 Calendar 触发器等。 4. 广泛的应用场景:Quartz框架...
调度器是Quartz框架的控制中心,通过它,你可以管理所有的作业和触发器,包括添加、删除、暂停和恢复等操作。 #### 十一、编程调度同声明性调度 Quartz支持两种类型的调度方式:编程调度和声明性调度。编程调度...
这有助于开发者快速上手并深入了解Quartz的各种功能和配置选项。 Quartz内部架构由多个关键组件组成,包括调度器(Scheduler)、作业(Job)、触发器(Trigger)等。调度器负责管理作业和触发器,根据预设的调度...
Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行计划任务。这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的...
Quartz框架自2001年发布以来,已经在许多项目中得到广泛应用。它提供了灵活的时间表定义,使得开发者可以精确地设定任务的触发时间。Quartz不仅支持一次性任务,还支持周期性的重复任务。框架的核心特性包括: 1. *...
#### 一、Quartz框架简介 Quartz是一个功能强大的开源作业调度框架,被广泛应用于Java应用中实现任务的定时调度。Quartz通过对任务调度领域的核心问题进行高度抽象,提炼出了三个核心概念:**调度器(Scheduler)**...
#### 四、Quartz框架的其他特征 1. **集群支持**:Quartz支持多节点集群部署,能够在集群环境中提供高可用性和负载均衡能力。 2. **性能优化**:Quartz通过高效的缓存机制和优化算法提升性能。 3. **安全性**:支持...
Quartz中文入门教程 前言 Quartz让任务调度简单 Quartz的发展史 上手Quartz Quartz内部架构 作业 作业管理和存储 有效作业存储 ...Quartz框架的其他特征 Quartz下一步计划 了解更多Quartz特征
分布式调度框架Quartz是OpenSymphony开源组织推出的一款强大的任务调度工具,专为Java平台设计。Quartz可以方便地与其他J2EE或J2SE应用结合,也可以单独使用。它支持创建复杂的工作流,能够处理从简单到成千上万个...
Java框架介绍Quartz从入门到进阶的文档介绍