spring quartz定时器的简单配置和使用 
第一步:导入相关jar包
(注:单单是在后台执行需要的jar包,若是经过tomcat执行,需额外添加一个jar包——jta-1.1.jar)
不同版本需要依赖的jar:
quartz-all-1.6.0.jar版本需要的jar包:
commons-collections-3.2.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
spring.jar
quartz-1.8.4.jar版本需要的jar包:
commons-collections-3.2.jar
commons-logging-1.1.1.jar
log4j-1.2.16.jar
quartz-1.8.4.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
spring.jar
第二步: 新建立一个业务bean-->cn.yulon.service.MessageService
package cn.yulon.service; 
public class MessageService { 
int  i; 
public  void printLog(){ 
i++; 
System.out.println("this is my timer:" +i); 
第三步:在Spring配置文件l,如下
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "/dtd/spring-beans.dtd"> 
<beans > 
<!-- 第一步: 配置好要定时调用的业务类 -->
<bean id="messageService" class="cn.yulon.service.MessageService" />
<!-- 第二步: 定义好具体要使用类的哪一个业务方法 -->
<bean id="printTimerJob" 
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
<!-- 目标bean -->
<property name="targetObject" ref="messageService" /> 
<!-- 要执行目标bean的哪一个业务方法 --> 
<property name="targetMethod" value="printLog" /> 
<!-- 是否并发 --> 
<property name="concurrent" value="false"/> 
</bean> 
<!-- 第三步: 定义好调用模式: 如每隔2秒钟调用一次或每天的哪个时间调用一次等 -->
<bean id="printTimerTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
<property name="jobDetail" ref="printTimerJob" /> 
<property name="cronExpression" value="0/2 * * * * ?" /> 
</bean> 
<!-- 启动定时器 --> 
<!--第四步 把定义好的任务放到调度(Scheduler)工厂里面,注意这里的ref bean --> 
<bean id="schedulerFactoryBean" 
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
<property name="applicationContextSchedulerContextKey" value="applicationContext"/> 
<property name="triggers"> 
<list> 
<ref bean="printTimerTrigger" /> 
</list> 
</property> 
</bean> 
<!-- end --> 
</beans>
相关介绍:
<!--
在xml里配置值得关注的是<property name="cronExpression" value="0/1 * * * * ? "/>表示每隔一秒钟执行一次,例子如下:
0 0 10,14,16 * * 每天
上午10点,下午2点和下午4点
0 0,15,30,45 * 1-10 * 每月前10天每隔15分钟
30 0 0 1 1 2012 在2012年1月1日午夜过30秒时
0 0 8-5 * MON-FRI 每个工作日的工作时间
- 区间
* 通配符  你不想设置那个字段
-->
<!-- 
cronExpression的介绍: 
按顺序 <value> 秒 分 小时 日期 月份 星期 年<value> 
字段      允许值                允许的特殊字符 
秒          0-59                , - * / 
分          0-59                , - * / 
小时          0-23                , - * / 
日期      1-31                , - * ? / L W C 
月份      1-12 或者 JAN-DEC    , - * / 
星期          1-7 或者 SUN-SAT      , - * ? / L C # 
年      (可选)留空,1970-2099    , - * / 
“*”字符被用来指定所有的值。如:”*“在分钟的字段域里表示“每分钟”。 
--> 
在xml里配置值得关注的是<property name="cronExpression" value="0/1 * * * * ? "/>表示每隔一秒钟执行一次,例子如下:
0 0 10,14,16 * * 每天上午10点,下午2点和下午4点
0 0,15,30,45 * 1-10 * 每月前10天每隔15分钟
30 0 0 1 1 2012 在2012年1月1日午夜过30秒时
0 0 8-5 * MON-FRI 每个工作日的工作时间
- 区间
* 通配符  你不想设置那个字段
第四步:新建测试类SpringTest
st;
import t.ApplicationContext;
import t.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args) {
ApplicationContext act = new ClassPathXmlApplicationContext("l");
}
}
运行结果如下 :
this is my timer:1
this is my timer:2
this is my timer:3
this is my timer:4
this is my timer:5
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="java.sun/xml/ns/javaee"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="java.sun/xml/ns/javaee
java.sun/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
springframework作用<!-- 加载spring的配置文件(一个或者多个) -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>l,applicationContext*.xml</param-value>
</context-param>
<!-- 配置spring(作用就是启动Web容器时,自动装配l文件的配置信息) -->
<listener>
<listener-class>
org.t.ContextLoaderListener
</listener-class>
</listener> 
</web-app>
应用场合: 如做一些定时提醒,定时发送邮件、短信,日志定时备份等应用

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。