`
dato0123
  • 浏览: 916334 次
文章分类
社区版块
存档分类
最新评论

Quartz 框架快速入门(四)

 
阅读更多
Springscheduling.quartz包中对Quartz框架进行了封装,使得开发时不用写任何QuartSpring的代码就可以实现定时任务。Spring通过JobDetailBeanMethodInvokingJobDetailFactoryBean实现Job的定义。后者更加实用,只需指定要运行的类,和该类中要运行的方法即可,Spring将自动生成符合Quartz要求的JobDetail

在上一篇文章《Quartz 框架快速入门(三)》中我们将示例迁移到Web环境下了,但使用的是Quartz的启动机制,这一篇中我们将让Web服务器启动Spring,通过Spring的配置文件来进行任务的调度

1,创建一个Web项目,加入spring.jarquartz-1.6.0.jarcommons-collections.jarjta.jarcommons-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框架快速入门

    Quartz 框架快速入门

    Quartz 框架快速入门 在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Scheduler

    Quartz框架快速入门.pdf

    Quartz框架快速入门.pdf

    Quartz 框架快速入门(一)

    NULL 博文链接:https://wangrl.iteye.com/blog/1125327

    Quartz_框架快速入门

    调度器基本使用,了解quartz的基本使用方法

    分布式调度框架quartz从入门到精通

    本文档包含以下章节:1、quartz简介;2、quartz快速入门;3、quartz核心API详解;4、quartz.properties配置详解;5、quartz持久化;6、quartz集群部署;7、springboot整合quartz。8、常见分布式调度框架的比较;

    Quartz如何从入门到精通

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。

    Quartz中文入门教程

    Quartz中文入门教程 前言 Quartz让任务调度简单 Quartz的发展史 上手Quartz Quartz内部架构 作业 作业管理和存储 有效作业存储 ...Quartz框架的其他特征 Quartz下一步计划 了解更多Quartz特征

    quartz入门到精通

    定时器框架学习资料,入门手册,新手专用!帮你快速入门开发搭建自己的定时器框架环境

    Java框架介绍Quartz从入门到进阶

    Java框架介绍Quartz从入门到进阶的文档介绍

    Java框架介绍Quartz从入门到进阶.pdf

    Java框架介绍Quartz从入门到进阶.pdf

    quartz1.6.6 实例

    这是一个本人自主编写的quartz调度框架的入门实例,非常简单,无配置文件,纯java调度,main 方法执行,控制台输出,可作为quartz框架的入门学习使用

    quartz PPT入门精心制作

    这份quartz ppt作者专门为入门学习quartz的赌注精心制作,包含了quartz的api详细解读,集群搭建等

    Quartz学习资料

    Quartz入门和Quartz开发指南

    Quartz入门到精通 中文WORD版.rar

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群...

    Quartz(作业调度)

    1.spring框架使用任务调度quartz的例子。 2.Web App用Quartz实现java schedule 3.详细讲解Quartz如何从入门到精通 4.用 Quartz 进行作业调度

    JAVA定时调度框架-Quartz使用入门到精通.doc

    一个很好的调度工具学习资料,可以定时调用发送短信,上传文件等功能,JAR包后面有

    详细讲解Quartz如何从入门到精通下载

    Quartz是一个开源的作业调度框架,它完全由 Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很 多特征,如:数据库支持,...

Global site tag (gtag.js) - Google Analytics