您的位置:首页 > 编程语言 > Java开发

一个简单的springMVC的定时任务实例

2015-08-10 10:15 633 查看
创建一个新的web工程,建好工程之后配置工程的build Path,并配好所要的jar包具体如下。

Spring简单框架的结构如下图:



其中一些基本的spring jar包如下图:



接下来就是配置web.xml和spring-mvc.xml文件,如下

Web.xml文件:

<?xmlversion="1.0"encoding="UTF-8"?>
<web-appversion="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">     <!--指工程的名字 -->
  <display-name>quartzExample</display-name>
  <!—详解见web.xml介绍文档 -->
<!-- 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 -->

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:spring-*.xml</param-value>
  </context-param>
  <!--Spring配置 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
   <!--Spring MVC配置 -->
   <servlet>
    <servlet-name>spring</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>
    <load-on-startup>1</load-on-startup>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
 
  <filter>
    <filter-name>SpringEncodingFilter</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>
    </<
c5ae
span style="color:#3F7F7F;">init-param>
  </filter>
 
  <filter-mapping>
    <filter-name>SpringEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
</web-app>

 

Spring-mvc.xml文件:

 

<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <!--  注解的配置使得系统能够识别程序中的注解 -->  
<!-- 启用springmvc 注解 -->   
<context:annotation-config/>
<!--  配置注解中的扫描包-->
<!-- 设置使用注解的类所在的jar包 -->

<context:component-scanbase-package="com.quartzExample.controller"/>
 <!-- 完成请求和注解POJO的映射 -->

 <beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
       <propertyname="messageConverters">
        <array>
        <beanclass=
"org.springframework.http.converter.StringHttpMessageConverter">
        <propertyname="supportedMediaTypes"value ="text/plain;charset=UTF-8"
/>
        </bean>
        </array>
        </property>
    </bean>
   <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->

    <beanid="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <propertyname="viewClass"value="org.springframework.web.servlet.view.JstlView"/>
       <propertyname="prefix"value="/WEB-INF/pages/"/>
       <propertyname="suffix"value=".jsp"></property>
    </bean>
       
</beans>       

任务调度的xml文件配置

spring-quartz.xml

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

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

        "http://www.springframework.org/dtd/spring-beans.dtd">

        

 <beans>      

     <!-- 线程执行器配置,用于任务注册 -->

    <bean id="executor"

        class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">

        <property name="corePoolSize" value="10" />

        <property name="maxPoolSize" value="100" />

        <property name="queueCapacity" value="500" />

    </bean>

        

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

   <bean id="job" class="com.quartzExample.schedulling.QuartzJob"></bean>

   

    <!--调度业务 : 定义调用对象和调用对象的方法 -->

    <bean id="jobtask"

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

        <!-- 调用的类 -->

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

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

        <property name="targetMethod" value="work" />

    </bean>

    

    <bean id="jobtask2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

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

        <property name="targetMethod" value="executor"/>

    </bean>

    

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

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

        <property name="jobDetail" ref="jobtask" />

        <!-- cron表达式 -->

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

    </bean>

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

        <property name="jobDetail" ref="jobtask2" />

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

    </bean>

    

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

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

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

        <property name="triggers">

            <list>

                <ref bean="doTime" />

                <ref bean="doTime2" />

            </list>

        </property>

        <property name="taskExecutor" ref="executor" />

    </bean>

 

</beans>  

  

任务调度的Java类:

package com.quartzExample.schedulling;

public class QuartzJob {

    

    public void work(){

        System.out.println("任务调度!!!启动....");

    }

    

    public void executor(){

        System.out.println("任务调度!!!停止....");

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring web spring mvc