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. 【微信小程序】在微信开发工具上七牛云的图片可以看到,但是在真机上看不到的原因解决

    在开发微信小程序过程中,在微信开发者工具上,七牛云的图片都可以展示出来,但是在真机上,七牛云的图片却展示不出来,也没有报404找不到或者不能加载图片的问题, 必须保证: 1.图片是用image加载的: ...

  2. windows下androidNDK环境配置

    一:什么是NDK? NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和java 应用一起打包成apk.这些工具对开发者的帮助是巨大的. NDK 集成了交叉编译器, ...

  3. 安全:Web 安全学习笔记

    背景 说来惭愧,6 年的 web 编程生涯,一直没有真正系统的学习 web 安全知识(认证和授权除外),这个月看了一本<Web 安全设计之道>,书中的内容多是从微软官方文档翻译而来,这本书 ...

  4. nginx: [error] invalid PID number “” in “/usr/local/var/run/nginx/nginx.pid”

    在Mac上用brew安装Nginx,然后修改Nginx配置文件,再重启时报出如下错误: nginx: [error] invalid PID number "" in " ...

  5. POPSpring动画参数详解

    POPSpring动画参数详解 效果 源码 https://github.com/YouXianMing/Animations // // POPSpringParameterController.m ...

  6. 阿里巴巴分布式服务框架 Dubbo

    1.Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源 ...

  7. Java学习之路(转)

    我也搞了几年JAVA了.因为一向懒惰,没有成为大牛,仅仅是一普通程序员,不爱玩社交站点.不爱玩微博,只有喜欢百度贴吧,潜水非常久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照 ...

  8. [leetcode]Remove Nth Node From End of List @ Python

    原题地址:http://oj.leetcode.com/problems/remove-nth-node-from-end-of-list/ 题意: Given a linked list, remo ...

  9. [转贴]SSL工作原理

    SSL协议使用不对称加密技术实现会话双方之间信息的安全传递.可以实现信息传递的保密性.完整性,并且会话双方能鉴别对方身份.不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议, ...

  10. IOS之导航控制器

    UINavigationController是用于构建分层应用程序的主要工具,主要采用栈形式来实现视图.任何类型的视图控制器都可放入栈中.在设计导航控制器时需要指定根视图即用户看到的第一个视图.根视图 ...