springmvc集成quartz定时器

来源:互联网 发布:如何查看淘宝月销售额 编辑:程序博客网 时间:2024/05/17 02:13



maven工程的pom文件

<?xml version="1.0" encoding="UTF-8"?><!--  Licensed to the Apache Software Foundation (ASF) under one  or more contributor license agreements.  See the NOTICE file  distributed with this work for additional information  regarding copyright ownership.  The ASF licenses this file  to you under the Apache License, Version 2.0 (the  "License"); you may not use this file except in compliance  with the License.  You may obtain a copy of the License at   http://www.apache.org/licenses/LICENSE-2.0  Unless required by applicable law or agreed to in writing,  software distributed under the License is distributed on an  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY  KIND, either express or implied.  See the License for the  specific language governing permissions and limitations  under the License.--><!-- $Id: pom.xml 642118 2008-03-28 08:04:16Z reinhard $ --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <packaging>war</packaging>  <name>maven-springmvc</name>  <groupId>com.demo</groupId>  <artifactId>maven-springmvc</artifactId>  <version>1.0-SNAPSHOT</version>  <build>    <plugins>      <plugin>        <groupId>org.mortbay.jetty</groupId>        <artifactId>maven-jetty-plugin</artifactId>        <version>6.1.7</version>        <configuration>          <connectors>            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">              <port>8888</port>              <maxIdleTime>30000</maxIdleTime>            </connector>          </connectors>          <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>          <contextPath>/</contextPath>        </configuration>      </plugin>    </plugins>  </build>    <dependencies>      <!--日志包-->      <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>3.8.1</version>        <scope>test</scope>      </dependency>      <dependency>        <groupId>org.slf4j</groupId>        <artifactId>slf4j-log4j12</artifactId>        <version>1.7.21</version>      </dependency>      <!--j2ee相关包 servlet、jsp、jstl-->      <dependency>        <groupId>javax.servlet</groupId>        <artifactId>javax.servlet-api</artifactId>        <version>3.1.0</version>      </dependency>      <dependency>        <groupId>javax.servlet.jsp</groupId>        <artifactId>jsp-api</artifactId>        <version>2.2</version>      </dependency>      <dependency>        <groupId>javax.servlet</groupId>        <artifactId>jstl</artifactId>        <version>1.2</version>      </dependency>      <!--mysql驱动包-->      <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.35</version>      </dependency>      <!--spring相关包-->      <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-web</artifactId>        <version>4.3.1.RELEASE</version>      </dependency>      <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-webmvc</artifactId>        <version>4.3.1.RELEASE</version>      </dependency>      <!--其他需要的包-->      <dependency>        <groupId>org.apache.commons</groupId>        <artifactId>commons-lang3</artifactId>        <version>3.4</version>      </dependency>      <dependency>        <groupId>commons-fileupload</groupId>        <artifactId>commons-fileupload</artifactId>        <version>1.3.1</version>      </dependency>      <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context-support</artifactId>        <version>4.3.1.RELEASE</version>      </dependency>      <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-tx</artifactId>        <version>4.3.1.RELEASE</version>      </dependency>      <dependency>        <groupId>org.quartz-scheduler</groupId>        <artifactId>quartz</artifactId>        <version>2.2.3</version>      </dependency>    </dependencies></project>


web.xml文件

<?xml version="1.0" encoding="UTF-8"?><web-app 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_3_0.xsd"         version="3.0">  <!--welcome pages-->  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <!--配置springmvc DispatcherServlet-->  <servlet>    <servlet-name>springMVC</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <init-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath:springMVC-servlet.xml</param-value>    </init-param>  </servlet>  <servlet-mapping>    <servlet-name>springMVC</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>  <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></web-app>

springmvc集成quartz配置文件

<?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:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p"       xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans.xsd            http://www.springframework.org/schema/mvc            http://www.springframework.org/schema/mvc/spring-mvc.xsd            http://www.springframework.org/schema/context            http://www.springframework.org/schema/context/spring-context.xsd"       default-lazy-init="true"><!-- DispatcherServlet Context: defines this servlet's request-processing        infrastructure -->    <context:annotation-config />    <!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 -->    <context:component-scan base-package="com.web" />    <mvc:annotation-driven />   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">       <property name="prefix" value="/WEB-INF/" />       <property name="suffix" value=".jsp" />   </bean><!--解决response回去的中文乱码问题-->    <mvc:annotation-driven >        <!-- 消息转换器 -->        <mvc:message-converters register-defaults="true">            <bean class="org.springframework.http.converter.StringHttpMessageConverter">                <property name="supportedMediaTypes" value="text/html;charset=UTF-8"/>            </bean>        </mvc:message-converters>    </mvc:annotation-driven>    <!-- end -->    <!--第一种方法对应的是myBean这个类-->    <bean id="simpleJobDetail"          class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">        <property name="targetObject" ref="myBean" />        <property name="targetMethod" value="printMessage" />    </bean>  <!--第二种方法对应的是FirstScheduledJob extends QuartzJobBean要继承,可以引入个持久化类-->    <bean id="firstComplexJobDetail"          class="org.springframework.scheduling.quartz.JobDetailFactoryBean">        <property name="jobClass"                  value="com.web.quartz.FirstScheduledJob" />        <property name="jobDataMap">            <map>                <entry key="anotherBean" value-ref="anotherBean" />            </map>        </property>        <property name="Durability" value="true"/><!--必须要,否则会报错-->    </bean>    <!-- 距离当前时间1秒之后执行,之后每隔两秒钟执行一次 -->    <bean id="mySimpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">        <property name="jobDetail"  ref="simpleJobDetail"/>        <property name="startDelay"  value="1000"/>        <property name="repeatInterval"  value="2000"/>    </bean>    <!-- 每隔5秒钟执行一次 -->    <bean id="myCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">        <property name="jobDetail"  ref="firstComplexJobDetail"/>        <property name="cronExpression"  value="0/5 * * ? * *"/>    </bean>    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">        <property name="jobDetails">            <list>                <ref bean="simpleJobDetail"/>                <ref bean="firstComplexJobDetail"/>            </list>        </property>        <property name="triggers">            <list>                <ref bean="mySimpleTrigger"/>                <ref bean="myCronTrigger"/>            </list>        </property>    </bean></beans>


定时器第一种实现方法

package com.web.quartz;import java.text.SimpleDateFormat;import java.util.Date;import org.springframework.stereotype.Component;import org.springframework.stereotype.Service;@Component(value="myBean")public class MyBean {public void printMessage() {// 打印当前的执行时间,格式为2017-01-01 00:00:00Date date = new Date();SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("MyBean Executes!" + sf.format(date));}}


定时器第二种实现方法

package com.web.quartz;import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class FirstScheduledJob extends QuartzJobBean{     private AnotherBean anotherBean;          public void setAnotherBean(AnotherBean anotherBean){     this.anotherBean = anotherBean;     }@Overrideprotected void executeInternal(JobExecutionContext arg0)throws JobExecutionException {Date date = new Date();SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("FirstScheduledJob Executes!" + sf.format(date));this.anotherBean.printAnotherMessage();}}



package com.web.quartz;import org.springframework.stereotype.Component;@Component("anotherBean")public class AnotherBean {public void printAnotherMessage() {System.out.println("AnotherMessage");}}





原创粉丝点击