Spring的定时调度--Quartz

Spring的定时调度--Quartz

     Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了QuartzSpring中的Quartz的使用方法。

 

1.       所需类库

spring-framework-2.5.6\dist\spring.jar

spring-framework-2.5.6\lib\quartz\quartz-all-1.6.1.jar

spring-framework-2.5.6\lib\jakarta-commons\commons-logging.jar

spring-framework-2.5.6\lib\jakarta-commons\commons-collections.jar

spring-framework-2.5.6\lib\log4j\log4j-1.2.15.jar

注:log4j-1.2.15.jar为日志类库,删除不会出错

 

2.定时调度类

 

    这里写了个测试例子,代码如下:

Testquartz.java代码

package com.taoistwar.spring.quartz;

 

import java.util.Date;

 

public class TestQuartz {

       public void test() {

              System.out.println(new Date() + "调用");

       }

}

 

 3.Spring配置

 

Applicationcontext.xml代码

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

       xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

       xsi:schemaLocation="http://www.springframework.org/schema/beans

           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

           http://www.springframework.org/schema/context

           http://www.springframework.org/schema/context/spring-context-2.5.xsd

           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-

2.5.xsd

           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-

 

2.5.xsd">

       <bean id="testQuartz" class="com.taoistwar.spring.quartz.TestQuartz" />

       <!-- bean触发方法配置 -->

       <bean name="quartzBean"

              class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

              <!-- bean名字 -->

              <property name="targetObject" ref="testQuartz" />

              <!-- bean方法 -->

              <property name="targetMethod">

                     <value>test</value>

              </property>

              <property name="concurrent">

                     <value>false</value>

              </property>

       </bean>

       <!-- bean触发时间配置 -->

       <bean id="quartzTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

              <!-- 触发bean配置 -->

              <property name="jobDetail">

                     <ref bean="quartzBean" />

              </property>

              <!-- 触发时间配置 -->

              <property name="cronExpression">

                     <value>0 0/1 * * * ?</value>

              </property>

       </bean>

 

       <!-- quartz触发器管理 -->

       <bean id="sfb"

              class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

              <!-- 添加触发器 -->

              <property name="triggers">

                     <list>

                            <ref local="quartzTrigger" />

                     </list>

              </property>

       </bean>

</beans>

 

4.应用程序测试

        经过已上配置已经成功,现需要进行测试,测试分为应用程序测试和web程序测试,本部进行应用程序测试。测试代码

如下:

Java代码

5.web程序测试

package com.taoistwar.spring.quartz;

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

public class SpringMain {

 

       public static void main(String[] args) {

              System.out.println("---开始初始化--- ");

              ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

              System.out.println("---完成初始化---");

               // 死循环,查看定时高度情况,本例高度为每分钟一次

              while (true) {

                    

              }

       }

 

}

web.xml中配置spring,代码如下:

Web.xml代码

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

       xmlns="http://java.sun.com/xml/ns/javaee"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 

      <!-- spring -->

       <context-param>

              <param-name>contextConfigLocation</param-name>

              <param-value>classpath:applicationContext.xml</param-value>

       </context-param>

       <listener>

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

       </listener>

      

       <welcome-file-list>

              <welcome-file>index.jsp</welcome-file>

       </welcome-file-list>

</web-app>

6.附件备注

Quartz.rar为源码。

Quartz.war.rar为发布在JBoss下的war包,若在Tomcat下则把Quartz.war改为Quartz即可。

猜你喜欢

转载自lanapple.iteye.com/blog/1055416