zoukankan      html  css  js  c++  java
  • spring定时器配置

    项目有用到定时器,拍给我做,作为小白的我,感觉到压力很大,上网一查,我顿时就笑了、呵呵哒。

    整理下我简单测试的spring定时器的代码。

    1.创建执行定时器的java类

    public class TimeTest {
        private Logger logger = LoggerFactory.getLogger(this.getClass());
    public void tesTime(){
        logger.info("定时器执行成功!--------------------------------------");
        for (int i = 0; i < 10; i++) {
            System.out.println("i的个数为="+i);
        }
    }
    }
    View Code

    2.配置spring的XML文件,文件名spring-time.xml

    ps:该文件与项目的spring文件最好是分离的

     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" 
     4     xmlns:p="http://www.springframework.org/schema/p"
     5     xmlns:context="http://www.springframework.org/schema/context"
     6     xmlns:mvc="http://www.springframework.org/schema/mvc"
     7     xsi:schemaLocation="   
     8         http://www.springframework.org/schema/beans   
     9         http://www.springframework.org/schema/beans/spring-beans.xsd   
    10         http://www.springframework.org/schema/context   
    11         http://www.springframework.org/schema/context/spring-context.xsd  
    12         http://www.springframework.org/schema/mvc   
    13         http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    14 
    15     <!-- 要调用的工作类 -->
    16     <bean id="timeTestBean" class="com.ssm.cn.time.TimeTest"></bean>
    17     
    18     <!-- 定义调用对象和调用对象的方法 -->
    19     <bean id="timeJobe" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    20         <!-- 调用的类 -->
    21         <property name="targetObject" ref="timeTestBean"></property>
    22         <!-- 调用类中的方法 -->
    23         <property name="targetMethod" value="tesTime"></property>
    24     </bean>
    25     <!-- 定义触发时间 -->
    26     <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    27         <property name="jobDetail" ref="timeJobe"></property>
    28         <!-- cron表达式 -->
    29         <property name="cronExpression">
    30             <value>0/2 * * * * ?</value><!-- 每2秒执行一次 -->
    31         </property>
    32     </bean>
    33     
    34     <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
    35     <bean id="startQuertz" lazy-init="false" autowire="no"
    36         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    37         <property name="triggers">
    38             <list>
    39                 <ref bean="doTime" />
    40             </list>
    41         </property>
    42     </bean>
    43 </beans>
    View Code

    3.web.xml配置

    <!--配置DispatherServlet -->
        <servlet>
            <servlet-name>SpringMVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--配置SpringMVC需要加载的配置文件 spring-dao.xml,spring-service.xml,spring-web.xml 
                Mybatis==>Spring==>SpringMVC -->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring/spring-*.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>SpringMVC</servlet-name>
            <!--默认拦截所有的请求 -->
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    View Code

    <param-value>classpath:spring/spring-*.xml</param-value>为主要的,加载spring开头的所有spring-*.xml配置,可以用别的方式,个人习惯。

    4.maven所需的jar包

    <!-- spring 定时器 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>4.1.5.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>2.2.1</version>
            </dependency>
    View Code

    两个jar包,不要问我为什么这么少,你的项目是用的spring框架,就需要这俩jar包。

    什么??你的不是maven项目,好吧。自己百度下载吧。

    纯属自己理解,欢迎指正。

    有的jar文件里没有  CronTriggerBean  类,不要着急,可以用  CronTriggerFactoryBean 代替,具体原理,自己阅读源码吧。

    ------------------------------------

    慢慢成长,慢慢进步。

  • 相关阅读:
    Angular 从入坑到挖坑
    如何获取 C# 类中发生数据变化的属性信息
    我的领域驱动设计运用实例
    Newbe.Claptrap
    体验 QQ机器人C# SDK 1.X 特性总结
    Newbe.Claptrap 框架中为什么用 Claptrap 和 Minion 两个词?
    轻松应对并发问题 Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车
    谈反应式编程在服务端中的应用,数据库操作优化,提速 Upsert
    十万同时在线用户,需要多少内存?——Newbe.Claptrap 框架水平扩展实验
    docker-mcr 助您全速下载 dotnet 镜像
  • 原文地址:https://www.cnblogs.com/qypx520/p/5848911.html
Copyright © 2011-2022 走看看