zoukankan      html  css  js  c++  java
  • Spring4 + Quartz-2.2.0集成实例

    Spring3.0不支持Quartz2.0,因为org.quartz.CronTrigger在2.0从class变成了一个interface造成IncompatibleClassChangeError错误:
    Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class

    今天刚下载了Spring3.2.4,发现这个新版本已经支持quartz2.x了.以前的Spring版本只支持Quartz-1.8.x及以前的版本,做个小实例分享一下.

    注:Spring3.2.4配置文件中使用CronTriggerFactoryBean来集成quartz2.x,使用CronTriggerBean来集成quartz1.8.x及以前版本.

    代码结构及引用jar见下图:

    applicationContext.xml:

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
    4.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
    5.      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
    6.   
    7.     <!-- 启动触发器的配置开始 -->  
    8.     <bean name="startQuertz" lazy-init="false" autowire="no"  
    9.         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
    10.         <property name="triggers">  
    11.             <list>  
    12.                 <ref bean="myJobTrigger" />  
    13.             </list>  
    14.         </property>  
    15.     </bean>  
    16.     <!-- 启动触发器的配置结束 -->  
    17.   
    18.     <!-- 调度的配置开始 -->  
    19.     <!--  
    20.         quartz-1.8以前的配置   
    21.     <bean id="myJobTrigger"  
    22.         class="org.springframework.scheduling.quartz.CronTriggerBean">  
    23.         <property name="jobDetail">  
    24.             <ref bean="myJobDetail" />  
    25.         </property>  
    26.         <property name="cronExpression">  
    27.             <value>0/1 * * * * ?</value>  
    28.         </property>  
    29.     </bean>  
    30.     -->  
    31.     <!-- quartz-2.x的配置 -->  
    32.     <bean id="myJobTrigger"  
    33.         class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
    34.         <property name="jobDetail">  
    35.             <ref bean="myJobDetail" />  
    36.         </property>  
    37.         <property name="cronExpression">  
    38.             <value>0/1 * * * * ?</value>  
    39.         </property>  
    40.     </bean>  
    41.     <!-- 调度的配置结束 -->  
    42.   
    43.     <!-- job的配置开始 -->  
    44.     <bean id="myJobDetail"  
    45.         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
    46.         <property name="targetObject">  
    47.             <ref bean="myJob" />  
    48.         </property>  
    49.         <property name="targetMethod">  
    50.             <value>work</value>  
    51.         </property>  
    52.     </bean>  
    53.     <!-- job的配置结束 -->  
    54.   
    55.     <!-- 工作的bean -->  
    56.     <bean id="myJob" class="com.tgb.lk.demo.quartz.MyJob" />  
    57.   
    58. </beans>  

    MyJob.java:

    [java] view plain copy
     
    1. import java.util.Date;  
    2.   
    3. public class MyJob {  
    4.   
    5.     public void work() {  
    6.         System.out.println("date:" + new Date().toString());  
    7.     }  
    8. }  



    web.xml:

    [html] view plain copy
     
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
    5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
    6.       
    7.     <!-- Spring config start -->  
    8.     <context-param>  
    9.         <param-name>contextConfigLocation</param-name>  
    10.         <param-value>/WEB-INF/classes/applicationContext.xml</param-value>  
    11.     </context-param>  
    12.   
    13.     <listener>  
    14.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    15.     </listener>  
    16.     <!-- Spring config end -->  
    17.   
    18.     <welcome-file-list>  
    19.         <welcome-file>index.jsp</welcome-file>  
    20.     </welcome-file-list>  
    21. </web-app>  

    代码下载地址:http://download.csdn.net/detail/lk_blog/6277021

    log4j.logger.org.quartz=INFO   控制输出日志

  • 相关阅读:
    Python 冒泡排序
    编程规范之注释篇
    编程规范之变量命名篇
    安装Django
    字典&列表的拓展理解
    小球落地
    Python结合sql登陆案例
    面向对象:两手交换牌
    每日一题(一)
    Web应用之LAMP源码环境部署
  • 原文地址:https://www.cnblogs.com/yhtboke/p/5806501.html
Copyright © 2011-2022 走看看