`
wangrl
  • 浏览: 148791 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Quartz 框架快速入门(四)

 
阅读更多

Quartz 框架快速入门(四)

     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框架快速入门

    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