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,我们将对这个方法进行定时调度.
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packagecom.vista.quartz;
importjava.util.Date;
importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importorg.quartz.JobExecutionContext;
importorg.quartz.JobExecutionException;
publicclassHelloWorld
{
privatestaticLoglogger=LogFactory.getLog(HelloWorld.class);//日志记录器
publicHelloWorld()
{
}
publicvoidexecute()
{
logger.info("KickyourassandFuckyourmother!-"+newDate());
}
}
2. Spring配置文件applicationContext.xml修改如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><?xmlversion="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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!--要调用的工作类-->
<beanid="quartzJob"class="com.vista.quartz.HelloWorld"></bean>
<!--定义调用对象和调用对象的方法-->
<beanid="jobtask"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--调用的类-->
<propertyname="targetObject">
<refbean="quartzJob"/>
</property>
<!--调用类中的方法-->
<propertyname="targetMethod">
<value>execute</value>
</property>
</bean>
<!--定义触发时间-->
<beanid="doTime"class="org.springframework.scheduling.quartz.CronTriggerBean">
<propertyname="jobDetail">
<refbean="jobtask"/>
</property>
<!--cron表达式-->
<propertyname="cronExpression">
<value>10,15,20,25,30,35,40,45,50,55****?</value>
</property>
</bean>
<!--总管理类如果将lazy-init='false'那么容器启动就会执行调度程序-->
<beanid="startQuertz"lazy-init="false"autowire="no"class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<propertyname="triggers">
<list>
<refbean="doTime"/>
</list>
</property>
</bean>
</beans>
3,先在控制台中对上面的代码进行测试,我们要做的只是加载Spring的配置文件就可以了,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packagecom.vista.quartz;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclassTest
{
publicstaticvoidmain(String[]args)
{
System.out.println("Teststart.");
ApplicationContextcontext=newClassPathXmlApplicationContext("applicationContext.xml");
//如果配置文件中将startQuertzbean的lazy-init设置为false则不用实例化
//context.getBean("startQuertz");
System.out.print("Testend..");
}
}
4,然后将Web.xml修改如下,让tomcat在启动时去初始化Spring:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="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,测试结果如下图所示:
分享到:
相关推荐
Quartz框架快速入门Quartz框架快速入门
Quartz 框架快速入门 在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Scheduler
Quartz框架快速入门.pdf
NULL 博文链接:https://wangrl.iteye.com/blog/1125327
调度器基本使用,了解quartz的基本使用方法
本文档包含以下章节:1、quartz简介;2、quartz快速入门;3、quartz核心API详解;4、quartz.properties配置详解;5、quartz持久化;6、quartz集群部署;7、springboot整合quartz。8、常见分布式调度框架的比较;
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。
Quartz中文入门教程 前言 Quartz让任务调度简单 Quartz的发展史 上手Quartz Quartz内部架构 作业 作业管理和存储 有效作业存储 ...Quartz框架的其他特征 Quartz下一步计划 了解更多Quartz特征
定时器框架学习资料,入门手册,新手专用!帮你快速入门开发搭建自己的定时器框架环境
Java框架介绍Quartz从入门到进阶的文档介绍
Java框架介绍Quartz从入门到进阶.pdf
这是一个本人自主编写的quartz调度框架的入门实例,非常简单,无配置文件,纯java调度,main 方法执行,控制台输出,可作为quartz框架的入门学习使用
这份quartz ppt作者专门为入门学习quartz的赌注精心制作,包含了quartz的api详细解读,集群搭建等
Quartz入门和Quartz开发指南
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群...
1.spring框架使用任务调度quartz的例子。 2.Web App用Quartz实现java schedule 3.详细讲解Quartz如何从入门到精通 4.用 Quartz 进行作业调度
一个很好的调度工具学习资料,可以定时调用发送短信,上传文件等功能,JAR包后面有
Quartz是一个开源的作业调度框架,它完全由 Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很 多特征,如:数据库支持,...