你的位置:首页 > ASP.net教程

[ASP.net教程]Spring+Quarz实现定时任务


一、首先引入quarz所需要的jar包,如下:

 收藏代码

  1. <dependency>  
  2.         <groupId>org.quartz-scheduler</groupId>  
  3.         <artifactId>quartz</artifactId>  
  4.         <version>1.8.6</version>  
  5.    </dependency>  

  <dependency>      <groupId>org.quartz-scheduler</groupId>      <artifactId>quartz</artifactId>      <version>1.8.6</version>    </dependency>

二、编写定时任务 定义一个普通的JAVA类,不需要继承或者实现其它的父类 

Java代码 复制代码 收藏代码

  1. package com.liyi.test.quarz;  
  2.    
  3. import java.util.Date;  
  4.    
  5. public class SpringQuarz {  
  6.     public void test(){  
  7.         System.out.println(new Date()+"触发一次定时任务");  
  8.     }  
  9. }  

package com.liyi.test.quarz; import java.util.Date; public class SpringQuarz {  public void test(){    System.out.println(new Date()+"触发一次定时任务");  }}

三、spring配置定时任务,我是自己在web-inf下面新建了一个文件夹,专门放置quarz定时任务的配置文件,在主的spring配置文件applicationContent.    1、在applicationContext. 收藏代码

  1. <!-- 定时任务 -->  
  2.     <import resource="spring/spring_quarz_springquarz./>  

<!-- 定时任务 -->  <import resource="spring/spring_quarz_springquarz.

2、定时任务详细配置(一定要记得加入对应的命名空间)
    以下是我个人理解,你要配置一个定时任务,需要定义四部分主要内容:
    a)你需要把你的定时任务类加入到spring 容器 中,你可以用注解,也可以用配置bean的方式。
    b)org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean ,配置一个详细调度任务的配置。
        里面有两个参数,一个是 targetObject:引用你的定时任务类  一个是targetMethod :定时任务类里面的执行方法
    c) org.springframework.scheduling.quartz.CronTriggerBean,调度器的配置,说白了就是指定任务的调度时间里面也 
        有两个参数,一个是jobDetail:对应你配置详细调度任务的bean 一个是 cronExpression 执行时间
    d)org.springframework.scheduling.quartz.SchedulerFactoryBean 触发任务的工厂。里面也有两个参数一个是
        jobDetails:对应的是你的任务调度详细配置,一个是triggers就是调度器的时间,这两个就是指向你刚才配的两个bean
        就对了。 

 收藏代码

  1. <?version="1.0" encoding="UTF-8"?>  
  2. <beans "http://www.springframework.org/schema/beans"  
  3.     "http://www.w3.org/2001/
  4.     "http://www.springframework.org/schema/context"  
  5.     "http://www.springframework.org/schema/lang"  
  6.     "http://www.springframework.org/schema/p"  
  7.     "http://www.springframework.org/schema/task"  
  8.     "http://www.springframework.org/schema/tx"  
  9.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  10.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  11.         http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd  
  12.         http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd  
  13.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  
  14.     <!-- 把定时任务的类注入到spring 中 -->  
  15.     <bean id="springQuarz" class="com.liyi.test.quarz.SpringQuarz"></bean>  
  16.        
  17.     <!-- 配置定时任务的作业类 -->  
  18.     <bean id="springQuarzDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  19.         <property name="targetObject">  
  20.             <ref bean="springQuarz"></ref>  
  21.         </property>  
  22.         <property name="targetMethod">  
  23.             <value>test</value>  
  24.         </property>  
  25.     </bean>  
  26.     <!-- 配置定时任务的调度器 -->  
  27.       <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  28.          <property name="jobDetail" ref="springQuarzDetail" />   
  29.          <property name="cronExpression" value="0/5 * * * * ?" />   
  30.      </bean>   
  31.    
  32. <!--      <bean id="simpleTrigger" >  -->  
  33. <!--           <property name="jobDetail" ref="springQuarzDetail" /> -->  
  34. <!--              <property name="repeatInterval" value="5000" /> -->  
  35. <!--           <property name="startDelay" value="1000" /> -->  
  36. <!--      </bean>  -->  
  37.        
  38.      <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  39.         <property name="jobDetails">  
  40.            <list>  
  41.               <ref bean="springQuarzDetail" />  
  42.            </list>  
  43.         </property>  
  44.         
  45.         <property name="triggers">  
  46.             <list>  
  47.             <ref bean="cronTrigger" />  
  48.             </list>  
  49.         </property>  
  50.     </bean>  
  51.    
  52. </beans>  

<?

启动项目,项目就会每隔5秒执行一下你的定时任务。       

 

java企业级通用权限安全框架源码 SpringMVC mybatis or hibernate+ehcache shiro druid bootstrap HTML5

【java框架源码下载】