quartz demo01

1,Pom.xml   加入:quartz-2.1.7.jar

<dependency>

  <groupId>org.quartz-scheduler</groupId>

  <artifactId>quartz</artifactId>

  <version>2.1.7</version>

</dependency>

2,定义任务类

package com.xinwei.util;

 

import com.xinwei.rbac.service.CommonBizService;

import com.xinwei.util.spring.SpringFactory;

 

public class UpdateCurrentValueTask { 

   static CommonBizService service;

   static {

      service = (CommonBizService) SpringFactory

           .getBean("commonBizServiceImpl");

   }

    public void doTask(){ 

      System.out.println("do quertz scheduler... ..."); 

        service.updateCurrentValueBySeqName("group_id_seq");

    } 

3, spring-scheduler.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:jdbc="http://www.springframework.org/schema/jdbc" 

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

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

   xmlns:jpa="http://www.springframework.org/schema/data/jpa"

   xsi:schemaLocation="

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

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

      http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd

      http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd

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

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

      http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"

   default-lazy-init="false">

 

    <!-- 任务管理器 --> 

    <beans> 

        <!-- 要调用的工作类 --> 

        <bean id="quartzJob" class="com.xinwei.util.UpdateCurrentValueTask"></bean> 

        <!-- 定义调用对象和调用对象的方法 多个任务定义多个--> 

        <bean id="jobtask2" 

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

            <!-- 调用的类 --> 

            <property name="targetObject"

                <ref bean="quartzJob" /> 

            </property> 

            <!-- 调用类中的方法 --> 

            <property name="targetMethod"

                <value>doTask</value> 

            </property> 

        </bean> 

        <!-- 定义触发时间 --> 

        <bean id="doTime2" 

            class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"

            <property name="jobDetail"

                <ref bean="jobtask2" /> 

            </property> 

            <!-- cron表达式  每天24:00运行一次 --> 

           <property name="cronExpression" value="0 0 0 * * ?" /> 

        </bean> 

        <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> 

        <bean id="startQuertz" lazy-init="false" autowire="no" 

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

            <property name="triggers"

                <list> 

                    <ref bean="doTime2"/> 

                </list> 

            </property> 

        </bean> 

    </beans>

</beans>

4,web.xml中管理上述schduler

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

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

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

   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

   version="2.5">

   <display-name>security</display-name>

 

   <context-param>

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

      <param-value>

         classpath*:/applicationContext.xml,

         classpath*:/applicationContext-shiro.xml,

         classpath*:/spring-scheduler.xml

      </param-value>

   </context-param>

 

   <listener>

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

   </listener>

 

   <!-- 主要注册request,在普通类中获取request对象 -->

   <listener>

      <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

   </listener>

 

  

 

   <filter>

      <filter-name>encodingFilter</filter-name>

      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

      <init-param>

         <param-name>encoding</param-name>

         <param-value>UTF-8</param-value>

      </init-param>

      <init-param>

         <param-name>forceEncoding</param-name>

         <param-value>true</param-value>

      </init-param>

   </filter>

   <filter-mapping>

      <filter-name>encodingFilter</filter-name>

      <url-pattern>/*</url-pattern>

   </filter-mapping>

 

 

   <!-- 过滤参数,将前台传输的参数request. page.去掉 -->

    <filter>

      <filter-name>ParameterFilter</filter-name>

      <filter-class>com.xinwei.filter.ParameterFilter</filter-class>

      <init-param> 

           <param-name>blackListURL</param-name> <!-- 配置黑名单url 表示不走过滤器的url order:1 --> 

           <param-value> 

               /js/**

            /css/**

            /styles/**

            /images/**

            /plugins/**

            /fonts/**

            /login/timeout

            /logout

            /views/**

           </param-value> 

       </init-param> 

       <init-param> 

           <param-name>whiteListURL</param-name> <!-- 配置白名单url 表示走过滤器的url order:2--> 

           <param-value> 

               /**

           </param-value> 

       </init-param> 

   </filter>

   <filter-mapping>

      <filter-name>ParameterFilter</filter-name>

      <url-pattern>/*</url-pattern>

   </filter-mapping>

  

  

  

   <!-- pagination filter -->

   <filter>

      <filter-name>PageFilter</filter-name>

      <filter-class>com.xinwei.filter.PageFilter</filter-class>

      <init-param> 

           <param-name>blackListURL</param-name> <!-- 配置黑名单url 表示不走过滤器的url order:1 --> 

           <param-value></param-value> 

       </init-param> 

       <init-param> 

           <param-name>whiteListURL</param-name> <!-- 配置白名单url 表示走过滤器的url order:2--> 

           <param-value> 

               /**/list

           </param-value> 

       </init-param> 

   </filter>

   <filter-mapping>

      <filter-name>PageFilter</filter-name>

      <url-pattern>/*</url-pattern>

   </filter-mapping>

  

  

  

  

  

  

 

 

   <!-- <filter> <filter-name>openEntityManagerInViewFilter</filter-name> <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>

      </filter> <filter-mapping> <filter-name>openEntityManagerInViewFilter</filter-name>

      <url-pattern>/*</url-pattern> </filter-mapping> -->

 

 

 

 

 

 

 

   <filter>

      <filter-name>shiroFilter</filter-name>

      <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>

      <init-param>

         <param-name>targetFilterLifecycle</param-name>

         <param-value>true</param-value>

      </init-param>

   </filter>

   <filter-mapping>

      <filter-name>shiroFilter</filter-name>

      <url-pattern>/*</url-pattern>

   </filter-mapping>

 

 

   <servlet>

      <servlet-name>springServlet</servlet-name>

      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

      <init-param>

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

         <param-value>classpath*:/spring-mvc.xml</param-value>

      </init-param>

      <init-param>

         <param-name>dispatchOptionsRequest</param-name>

         <param-value>true</param-value>

      </init-param>

      <load-on-startup>1</load-on-startup>

   </servlet>

   <servlet-mapping>

      <servlet-name>springServlet</servlet-name>

      <url-pattern>/</url-pattern>

   </servlet-mapping>

 

  

     <servlet>

    <servlet-name>hessianServlet</servlet-name>

    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

    <init-param>

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

      <param-value>classpath:/server/hessian-server.xml</param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

      </servlet>

     

    <servlet-mapping>

      <servlet-name>hessianServlet</servlet-name>

      <url-pattern>/hessian/*</url-pattern>

    </servlet-mapping>

 

 

 

 

 

   <session-config>

      <session-timeout>30</session-timeout>

   </session-config>

 

   <error-page>

      <exception-type>java.lang.Throwable</exception-type>

      <location>/WEB-INF/views/error/500.jsp</location>

   </error-page>

   <error-page>

      <error-code>500</error-code>

      <location>/WEB-INF/views/error/500.jsp</location>

   </error-page>

   <error-page>

      <error-code>404</error-code>

      <location>/WEB-INF/views/error/404.jsp</location>

   </error-page>

   <error-page>

      <error-code>403</error-code>

      <location>/WEB-INF/views/error/403.jsp</location>

   </error-page>

 

 

</web-app>
原文地址:https://www.cnblogs.com/alamps/p/7590830.html