`
wangrl
  • 浏览: 154438 次
  • 性别: 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是一个开源的作业调度框架,用于开发Java应用程序。它提供了强大的触发器(Trigger)机制用于关联作业(Job),同时还具备灵活的表达式用于配置定时...

    Quartz 框架快速入门

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

    Quartz 框架快速入门(一)

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

    Quartz框架快速入门.pdf

    Quartz框架是一款强大的开源任务调度库,广泛应用于Java环境下的定时任务管理。要开始使用Quartz,首先需要在项目中引入必要的依赖。基础依赖是quartz-&lt;version&gt;.jar,这是Quartz的核心库。除此之外,根据你的需求,...

    Quartz_框架快速入门

    本文将引导您快速入门 Quartz 框架,了解其基本使用方法。 首先,要开始使用 Quartz,您需要从官方网站下载对应的 JAR 包,通常为 quartz-&lt;version&gt;.jar。除此之外,根据您的需求,Quartz 可能还需要一些第三方库,...

    Quartz如何从入门到精通.pdf

    Quartz框架的配置文件quartz.properties文件是Quartz框架的核心配置文件,它包括了Quartz框架的所有配置信息。你可以通过这个文件来配置Quartz框架的各种参数,以满足你的需求。 在使用Quartz框架时,你需要了解...

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

    2. 简单易用:Quartz框架易于使用和配置,开发者可以快速地创建和调度作业。 3. 高度灵活:Quartz框架支持多种作业调度模式,包括简单触发器、 cron 触发器、 Calendar 触发器等。 4. 广泛的应用场景:Quartz框架...

    Quartz如何从入门到精通

    调度器是Quartz框架的控制中心,通过它,你可以管理所有的作业和触发器,包括添加、删除、暂停和恢复等操作。 #### 十一、编程调度同声明性调度 Quartz支持两种类型的调度方式:编程调度和声明性调度。编程调度...

    Quartz定时器从入门到进阶

    这有助于开发者快速上手并深入了解Quartz的各种功能和配置选项。 Quartz内部架构由多个关键组件组成,包括调度器(Scheduler)、作业(Job)、触发器(Trigger)等。调度器负责管理作业和触发器,根据预设的调度...

    quartz实例,quartz入门例子

    Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行计划任务。这个实例是为初学者设计的,用于帮助理解Quartz的基本概念和使用方式。在MyEclipse 6.0.1环境下,你可以直接运行这个Spring整合Quartz的...

    任务调度Quartz框架

    Quartz框架自2001年发布以来,已经在许多项目中得到广泛应用。它提供了灵活的时间表定义,使得开发者可以精确地设定任务的触发时间。Quartz不仅支持一次性任务,还支持周期性的重复任务。框架的核心特性包括: 1. *...

    Quartz任务调度快速入门

    #### 一、Quartz框架简介 Quartz是一个功能强大的开源作业调度框架,被广泛应用于Java应用中实现任务的定时调度。Quartz通过对任务调度领域的核心问题进行高度抽象,提炼出了三个核心概念:**调度器(Scheduler)**...

    quartz入门到精通

    #### 四、Quartz框架的其他特征 1. **集群支持**:Quartz支持多节点集群部署,能够在集群环境中提供高可用性和负载均衡能力。 2. **性能优化**:Quartz通过高效的缓存机制和优化算法提升性能。 3. **安全性**:支持...

    Quartz中文入门教程

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

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

    分布式调度框架Quartz是OpenSymphony开源组织推出的一款强大的任务调度工具,专为Java平台设计。Quartz可以方便地与其他J2EE或J2SE应用结合,也可以单独使用。它支持创建复杂的工作流,能够处理从简单到成千上万个...

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

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

Global site tag (gtag.js) - Google Analytics