Quartz ---学习笔记

来源:互联网 发布:韩庚人品知乎 编辑:程序博客网 时间:2024/05/06 23:36

 Quartz 可以说是一个调度器,是用纯java写的,硬要翻译中文,是----”石英“的意思。

spring框架中封装了很多使用框架,而Quartz(一个任务调度器)也是其中的一种,在学校的时候,ssh接触甚少,spring更是难上难,马士兵老师说spring框架是最难学的一个呢。so 我还一直处于观望状态,老师讲spring的时候估计我在外面找工作了吧,第一次接触spring还是吴仁欢哥哥讲给我听的,而今天,我稍加整理,如果你也刚好正在学习,或许对你有帮助

 1:建立一个Test_Quartz.java文件

java:代码

package com.www.quartz;

public class Test_Quartz {
    public static void execute(){
   
        for(int i=0;i<3;i++){
         System.out.println("-------*****--------speak love "+i);   
        }
        System.out.println("don't lie to me !/n");
    }
}
很简单的一段代码,下面我们每隔三秒钟执行一次

在WBE-INF目录下创建 TimerConfig.xml文件

java代码如下:

 

<?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.5.xsd"> 
    <!-- 注册定时执行实体 -->
    <bean id ="test_Quartz" class="com.www.quartz.Test_Quartz"/>
   
    <!-- 注册定时信息-->
    <bean id="mainJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
   
        <!-- 指定要执行的定时任务类 -->
        <property name="targetObject">
        <ref bean="test_Quartz"/>
        </property>
       
        <!-- 指定执行任务的方法名称 -->
        <property name="targetMethod">
        <value>execute</value>
        </property>   
           
    </bean>
   
    <bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <!-- 声明要运行的实体 -->
        <property name="jobDetail">
            <ref bean="mainJob"/>
        </property>
        <!-- 设置要运行的时间 -->
        <property name="cronExpression">
        <value>0/3 * * * * ?</value>
        </property>           
    </bean>
    <!-- 注册定时器 -->
    <bean id="sfb" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <!-- 注入定时器实体 -->
    <property name="triggers">
    <list>
        <ref local="timeTrigger"/>
    </list>
    </property>
    </bean>
</beans>

刚开始接触配置文件时,很费解,多敲几次就好了,每个java文件中的类对应spring标签的bean 在java文件中,类和类之间的关系是怎样的 bean标签中就是怎样的 比如:

class a () 和class b 在b中创建a对象

反应到.xml文件中就是

<bean id ="a" class="com.www.work.action.a">

</bean>

<bean id ="b" class="com.www.work.action.b">

<ref bean="a">

<property name ="b" >

</property>

</bean>

 

基本上配置好了TimerConfig.xml文件,接下来,要在web.xml中加载我们刚配置的文件

java代码:

 <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>/WEB-INF/TimerConfig.xml</param-value>
 </context-param>

加入Listener(监听)

 <listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

保存配置,

刚开始很奇怪,因为不知道程序从哪里启动,没有public static void main (),也没有配置*.jsp,不能从浏览器中访问

单击sun 提示:没有main函数,

因为web项目要在tomcat服务器这个环境下运行 so 要将项目添加到tomcat中,执行顺序---先解析web.xml文件

------加载web-inf目录下的TimerConfig.xml文件。进而编译运行我们的配置,在控制台可以看到打印结果

每隔三秒钟 打印:


-------*****--------speak love 0
-------*****--------speak love 1
-------*****--------speak love 2
don't lie to me !

-------*****--------speak love 0
-------*****--------speak love 1
-------*****--------speak love 2
don't lie to me !

-------*****--------speak love 0
-------*****--------speak love 1
-------*****--------speak love 2
don't lie to me !

这就是项目最终的结果!

你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。