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表达式等等。