- 浏览: 205684 次
- 性别:
- 来自: 北京
最新评论
-
guoranaccp:
太帅了
Base64Encoder源码 -
xsw331:
...
javacsv导出 -
rock1103:
不错啊,中文也可以
javacsv导出 -
lyfi:
...
Base64Encoder源码 -
chengpeinishi:
亲们,资源可用哦。
javacsv导出
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>
在上一篇文章《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>
发表评论
-
eclipse axis2 插件 安装 link方式
2012-05-15 16:59 1866插件下载地址: http://www.apache.o ... -
JRuby初始安装与使用
2012-03-06 10:28 1178JRUBY的下载:http://dist.codehaus.o ... -
input type=file 标签禁止让用户手动输入
2012-02-21 14:08 1012<input name="filePat ... -
通过Mysql语句得到mysql安装路径
2012-01-07 13:07 9261、通过Mysql语句得到mysql安装路径: sel ... -
Apache Ant 环境搭建
2012-01-07 13:05 1116Apache Ant 下载地址:http://ant.apac ... -
Base64Encoder源码
2011-11-09 08:56 6236import java.io.*; /****** ... -
Base64Decoder源码
2011-11-09 08:55 2569import java.io.*; /****** ... -
JS和Java验证IP合法
2011-11-01 17:32 2389/* JS验证IP是否合法 */ function i ... -
修改Mysql启动路径
2011-11-01 17:31 1912修改Mysql启动路径 首先在服务中停止MySq ... -
Mysql提速
2011-09-21 16:55 1444因数据较大,导致执行速度慢,同事帮我优化一下,果然见效。 ... -
更换SVN用户
2011-09-21 16:25 782修改eclipse中的svn用户 1. 查看你的 ... -
Mac下JDK路径
2011-08-26 22:49 1232/System/Library/Java/JavaVirtua ... -
web.xml中load-on-startup标签
2011-08-11 10:54 837在servlet的配置当中,<load-on-st ... -
同时启动多个Tomcat服务器
2011-08-09 09:17 902所用Tomcat服务器都为zip版,非安装版。以两个为例:安装 ... -
String StringBuffer StringBuilder区别
2011-07-30 11:24 794String 字符串常量StringB ... -
java中访问修饰符public,protected,private,friendly
2011-07-30 11:21 10431)public: 表明该数据成员、函数都是对多有用户开发 ... -
存储过程的优点
2011-07-26 01:38 1027在性能方面,存储过程的优点: 1、预编译,存储过程预先编译好放 ... -
数据库视图的优点与缺点
2011-07-26 01:34 1784在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,视图 ... -
eclipse配置tomcat7
2011-05-31 12:32 1034图解如下: 修改服务器启动所需的jar包 即to ... -
Linux下Java环境的JDK+Tomcat+Mysql安装和配置
2011-05-26 13:29 1026CentOS5.4下安装JDK 1、 ...
相关推荐
### 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内部架构由多个关键组件组成,包括调度器(Scheduler)、作业(Job)、触发器(Trigger)等。调度器负责管理作业和触发器,根据预设的调度...
Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行计划任务。这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的...
Quartz框架自2001年发布以来,已经在许多项目中得到广泛应用。它提供了灵活的时间表定义,使得开发者可以精确地设定任务的触发时间。Quartz不仅支持一次性任务,还支持周期性的重复任务。框架的核心特性包括: 1. *...
#### 一、Quartz框架简介 Quartz是一个功能强大的开源作业调度框架,被广泛应用于Java应用中实现任务的定时调度。Quartz通过对任务调度领域的核心问题进行高度抽象,提炼出了三个核心概念:**调度器(Scheduler)**...
Quartz中文入门教程 前言 Quartz让任务调度简单 Quartz的发展史 上手Quartz Quartz内部架构 作业 作业管理和存储 有效作业存储 ...Quartz框架的其他特征 Quartz下一步计划 了解更多Quartz特征
分布式调度框架Quartz是OpenSymphony开源组织推出的一款强大的任务调度工具,专为Java平台设计。Quartz可以方便地与其他J2EE或J2SE应用结合,也可以单独使用。它支持创建复杂的工作流,能够处理从简单到成千上万个...
Java框架介绍Quartz从入门到进阶的文档介绍