SpringMVC的功能很强大,集成了Quartz定时器的功能。能够通过Cron表达式和简单的注解就实现定时运行任务的功能。

网上看到不少样例,可是都不是非常全。

闲话少说。首先要在springmvc.xml中加入以下几行:

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

<!--以下两行要放在xsi:schemaLocation里面-->

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

http://www.springframework.org/schema/task/spring-task-3.2.xsd

有了这两行代码。就能够在配置文件里加入定时器配置的XML代码。样例例如以下:

还是在springmvc.xml里面,这两行不用再解释。让springmvc知道去哪里扫描带注解的文件:

<!-- 注解扫描包 -->

<context:component-scan base-package="com.cmsv2.controller" />



<!-- 第二个注解包。这里面仅仅有@Scheduled,所以不扫描controller -->

<context:component-scan base-package="com.cmsv2.schedule">  

    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />  


</context:component-scan> 



<!-- 开启注解 -->

<mvc:annotation-driven/>

然后在以下加上:

<!-- 定时器配置 

    task:executor/@pool-size:能够指定运行线程池的初始大小、最大大小 

    task:executor/@queue-capacity:等待运行的任务队列的容量 

    task:executor/@rejection-policy:当等待队已满时的策略。分为丢弃、由任务执行器直接执行等方式 

   -->

    <task:scheduler id="scheduler" pool-size="10" />  

    <task:executor id="executor" keep-alive="3600" pool-size="100-200" 

    queue-capacity="500" rejection-policy="CALLER_RUNS" /> 

    <task:annotation-driven executor="executor" scheduler="scheduler" />

这几行从网上copy。

同一时候还要加入一个aopaliaance.jar,否则会报错:noClassDefoundError:org/aopalliance/aop/Advice

地址:
http://mirrors.ibiblio.org/pub/mirrors/maven2/aopalliance/aopalliance/1.0/

下载后add to buildpath。

至此配置工作完毕。

以下開始写代码:

<span style="font-family: Arial, Helvetica, sans-serif;">import java.util.Date;</span>
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component ; @Component
public class ScheduledTest2 { @Scheduled(cron = "0 0/1 * * * ?")
public void runFunction(){
System.out.println(new Date() + " package.controller scheduled test --> mahaha") ;
} }

然后就OK了!每分钟运行一次~~~

參考:http://bbs.csdn.net/topics/260068512

http://www.2cto.com/kf/201311/257405.html

http://blog.csdn.net/xiao_wgs69/article/details/11269391

SpringMVC使用Cron表达式的定时器的更多相关文章

  1. SpringMVC中使用Cron表达式的定时器

    SpringMVC中使用Cron表达式的定时器 cron(定时策略)简要说明 顺序: 秒 分 时 日 月 星期 年份 (7个参数,空格隔开各个参数,年份非必须参数) 通配符: , 如果分钟位置为* 1 ...

  2. Quartz cron 表达式(linux 定时器,java 定时任务,spring task定时任务)

    原文地址:https://blog.csdn.net/feng27156/article/details/39293403 Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但 ...

  3. Quartz的cron表达式 (spring定时器 crontab)

    http://tangshuo.iteye.com/blog/184824 表达式位数最少六位,如每天凌晨一点启动:"0 0 1 * * ?" 顺序按   秒 分 时 日期 月份 ...

  4. Spring定时器配置与运用,及Cron表达式的详解

    一:首先在spring的配置文件里配置一个定时器 <task:executor id="executor" pool-size="5" /> < ...

  5. spring cron表达式(定时器)

    转: spring cron表达式(定时器) 写定时器时用到,记录一下: Cron表达式是一个字符串,字符串以5或6个空格隔开,分开工6或7个域,每一个域代表一个含义,Cron有如下两种语法 格式:  ...

  6. 定时器 QuartZ Cron表达式

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表. CronT ...

  7. Spring cron 表达式

    前言: 最近做的项目有用到定时器,每周只在特定时间运行一次,考虑到Spring Task的简单易用性,就果断选择了,我是配置在配置文件里面,没有用注解@Scheduled,推荐配置,注解虽方便,但更改 ...

  8. Quartz Cron表达式生成器

    格式: [秒] [分] [小时] [日] [月] [周] [年]  序号 说明   是否必填  允许填写的值 允许的通配符   1  秒  是  0-59    , - * /  2  分  是  0 ...

  9. Quartz学习-- quartz基本介绍和 Cron表达式

    Quartz学习 一. Quartz 大致简介 Quartz 是完全由 java 开发的一个开源的任务日程管理系统 ​任务日程管理系统 换句话说就是: ​ 一个预先确定的日程时间到达时,负责执行任务的 ...

随机推荐

  1. sql把一个表的某几列的数据存到另一个表里

    一.如何用slq语句把一个表中的某几个字段的数据插入到另一个新表中,就要用下面这条slq语句:    insert into 表名1(字段1,字段2) select 字段1,字段2 from 表名2 ...

  2. pytest文档18-配置文件pytest.ini

    前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行. ini配置文件 pytest里面有些文件是非test文件 py ...

  3. A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28

    上面回答有问题,找到qq官方的文档了 http://service.exmail.qq.com/cgi-bin/help?id=28&no=1000585&subtype=1 如果您的 ...

  4. 如何优化JAVA代码

    通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化.一般有两种方案:即优化代码或更改设计方法.我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能 ...

  5. 如何使用C++回调函数

         程序猿经常须要实现回调.本文将讨论函数指针的基本原则并说明怎样使用函数指针实现回调.注意这里针对的是普通的函数,不包含全然依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论). ...

  6. 如何利用启明星Portal门户系统的Page模块构建文档库

    利用启明星门户系统的Page模块构架可以搭建企业内部的文档管理系统. (一)应用背景 企业内部通常都会使用共享网盘的方式来存放不同部门之间的文档,例如管理员在服务器上对人事部门增加人事部文档文件夹. ...

  7. JavaBean的应用

    1. 获取JavaBean属性信息 例1.1 在JSP页面中显示JavaBean属性信息. (1)创建名称为Produce的类,该类是封装商品对象的JavaBean,在Produce类中创建商品属性, ...

  8. 基于at91rm9200的i2c分析(DS1307实时时钟芯片)

    board-ek.c 构造i2c_board_info结构体 static struct i2c_board_info __initdata ek_i2c_devices[] = {     {    ...

  9. Linux中Shell的执行流程

    Shell执行流程 1.Printthe info of reminding 打印提示信息 2.Waitinguser for input(wait) 等待用户输入 3.Acceptthe comma ...

  10. Android之ViewPager循环Demo

    ViewPager是谷歌官方提供的兼容低版本安卓设备的软件包,里面包含了只有在安卓3.0以上可以使用的api.Viewpager现在也算是标配了,如果一个App没有用到ViewPager感觉还是比较罕 ...