spring提供了定时任务功能。我们不需要第三者jar包支持。spring够了。

代码:

package com.inth.product.web.task;

import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import com.inth.product.service.impl.ContractServiceImpl; @Component("changeStateTask")
public class ChangeStateTask{ @Autowired
private ContractServiceImpl contractServiceImpl;
/**
* 定时更改合同状态
* 0 0 * * * ? 表示每次秒和分为0时触发一次(每小时一次)
* "@Scheduled"时spring提供的定时任务标签
* 须要在applicationContext.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 "
* <task:annotation-driven scheduler="qbScheduler" mode="proxy"/>
* <task:scheduler id="qbScheduler" pool-size="10"/
* ChangeStateTask.doJob()<BR>
* <P>Author : DingYinLong </P>
* <P>Date : 2014年7月28日 </P>
*/
@Scheduled(cron = "0 0 * * * ?")
public void doJob(){
this.contractServiceImpl.executeStateChange();
}
/**
* 固定每分钟运行一次
* ChangeStateTask.doJob1()<BR>
* <P>Author : DingYinLong </P>
* <P>Date : 2014年8月1日 </P>
*/
@Scheduled(fixedRate = 60*1000)
public void doJob1(){
System.out.println(new Date() + "-----------------doJob1");
}
/**
* 上次任务结束后一分钟后再次运行
* ChangeStateTask.doJob2()<BR>
* <P>Author : DingYinLong </P>
* <P>Date : 2014年8月1日 </P>
*/
@Scheduled(fixedDelay = 60*1000)
public void doJob2(){
System.out.println(new Date() + "-----------------doJob2");
}
}

applicationContext.xml配置文件:

<?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:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd ">
<!-- 扫描包基础文件夹 -->
<context:component-scan base-package="com.inth" />
<!-- 识别@Scheduled注解 -->
<task:annotation-driven scheduler="qbScheduler" mode="proxy"/>
<task:scheduler id="qbScheduler" pool-size="10"/>
</beans>

注意事项:

1,beans 属性加上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 "

2,fixedRate和fixedDelay的差别写在凝视上了。

以上情况不基于注解纯配置例如以下:

代码:

package com.inth.product.web.task;

import java.util.Date;

import com.inth.product.service.impl.ContractServiceImpl;

public class ChangeStateTask{
private ContractServiceImpl contractServiceImpl;
public void doJob(){
System.out.println(new Date() + "-----------------doJob");
// this.contractServiceImpl.executeStateChange();
}
public void doJob1(){
System.out.println(new Date() + "-----------------doJob1");
}
public void doJob2(){
System.out.println(new Date() + "-----------------doJob2");
}
}

applicationContext.xml配置:

<?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:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd ">
<!-- 扫描包基础文件夹 -->
<context:component-scan base-package="com.inth" />
<bean name="taskJob" class="com.inth.product.web.task.ChangeStateTask"></bean>
<task:scheduled-tasks>
<task:scheduled ref="taskJob" method="doJob" cron="0/5 * * * * ? "/>
<task:scheduled ref="taskJob" method="doJob1" fixed-rate="5000"/>
<task:scheduled ref="taskJob" method="doJob2" fixed-delay="5000"/>
</task:scheduled-tasks>
</beans>

附:cron表达式配置说明 





字段 同意值 同意的特殊字符 

秒 0-59 , - * / 

分 0-59 , - * / 

小时 0-23 , - * / 

日期 1-31 , - * ?

/ L W C 

月份 1-12 或者 JAN-DEC , - * / 

星期 1-7 或者 SUN-SAT , - * ?

/ L C # 

年(可选) 留空, 1970-2099 , - * / 

表达式 意义 

"0 0 12 * * ?" 每天中午12点触发 

"0 15 10 ? * *" 每天上午10:15触发 

"0 15 10 * * ?" 每天上午10:15触发 

"0 15 10 * * ? *" 每天上午10:15触发 

"0 15 10 * * ? 2005" 2005年的每天上午10:15触发 

"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 

"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 

"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 

"0 15 10 ?

* MON-FRI" 周一至周五的上午10:15触发 

"0 15 10 15 * ?

" 每月15日上午10:15触发 

"0 15 10 L * ?" 每月最后一日的上午10:15触发 

"0 15 10 ?

* 6L" 每月的最后一个星期五上午10:15触发 

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 

"0 15 10 ?

* 6#3" 每月的第三个星期五上午10:15触发 

特殊字符 意义 

* 表示全部值。 

?

表示未说明的值,即不关心它为何值。 

- 表示一个指定的范围; 

, 表示附加一个可能值; 

/ 符号前表示開始时间,符号的每个增量后值;

版权声明:本文博主原创文章。博客,未经同意不得转载。

spring常规任务(轻便易)的更多相关文章

  1. spring注解和xml方式区别详解

    一.spring常规方式. 在使用注释配置之前,先来回顾一下传统上是如何配置 Bean 并完成 Bean 之间依赖关系的建立.下面是 3 个类,它们分别是 Office.Car 和 Boss,这 3 ...

  2. Spring实战1:Spring初探

    主要内容 Spring的使命--简化Java开发 Spring容器 Spring的整体架构 Spring的新发展 现在的Java程序员赶上了好时候.在将近20年的历史中,Java的发展历经沉浮.尽管有 ...

  3. spring mvc 基于注解的使用总结

    本文转自http://blog.csdn.net/lufeng20/article/details/7598801 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Sprin ...

  4. 使用XFire+Spring构建Web Service(一)——helloWorld篇

    转自:http://www.blogjava.net/amigoxie/archive/2007/09/26/148207.html原文出处:http://tech.it168.com/j/2007- ...

  5. spring mvc 经典总结

    概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...

  6. 使用XFire+Spring构建Web Service

    XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用. 相 对于Axis来说,目 ...

  7. 使用 Spring 2.5 基于注解驱动的 Spring MVC

    http://www.ibm.com/developerworks/cn/java/j-lo-spring25-mvc/ 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Sp ...

  8. 使用 Spring 2.5 基于注解驱动的 Spring MVC--转

    概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...

  9. 想要快速上手 Spring Boot?看这些教程就足够了!

    1.项目名称:分布式敏捷开发系统架构 项目简介:基于 Spring + SpringMVC + Mybatis 分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录).内容管理. ...

随机推荐

  1. 【iOS】文件下载小记

    下载文件到NSURLConnection与NSURLSession两种,一种有恨悠久的历史了. 使用相对麻烦,后者是新出来的,添加了一些额外的功能. 一.NSURLConnection实现下载 TIP ...

  2. nginx学习12 ngx_cycle_t 和 ngx_init_cycle

    在nginx在启动过程,ngx_init_cycle这个函数最初始工作.变量的初始化存储在ngx_cycle_t这个结构体中,为了深入了解这个函数都做了那些初始化工作,就化时间研究了一下.并写下来以便 ...

  3. Linux 远程查看tomcat控制台

    我现在只说如何看远程的tomcat控制台命令. 用远程登陆客户端登陆linux进入tomcat/logs/文件夹下键入指令:tail -f catalina.out ctrl + c  退出 这样就可 ...

  4. jQuery Fancybox插件说明

    这里有jquery影像回放路径插件称为Fancybox,项目主页地址:http://fancybox.net/ Fancybox的特点例如以下: 1.能够支持图片.html文本.flash动画.ifr ...

  5. Maven 中配置 Urlrewrite 基本配置

    1. 在maven项目的pom.xml文件里加入: <!-- URL Rewrite --> <dependency> <groupId>org.tuckey< ...

  6. Java EE (11) - 影响性能的因素

    垂直层(Tier)影响性能的因素 资源层数据库性能通常考虑以下方面的优化(MySQL为例):--使用哪种存储引擎:MyISAM vs. InnoDB, MERGE, MEMORY, Federated ...

  7. Android 照相功能

    使用内置的Camera 应用程序捕获图像            探索Android 所提供的内置功能,内置的图像捕获与存储功能为Android 上全部媒体功能提供了一个非常好的切入点,为我们在以后的章 ...

  8. Android 从硬件到应用程序:一步一步爬上去 5 -- 在Frameworks蒂姆层硬件服务

    Android Frameworks层提供硬件服务,Android系统APP能够调用这些硬件服务,而硬件则完全控制.实现应有的功能.上一页下一页.为了这一个frameworks高层的应用java接口硬 ...

  9. JAVA先进-设置(1)

    >Arrays 基本阵列 1.常见的数组产生于main() 函数,数组下标的索引不能超过0到int的范围 2.当程序试图訪问数组的第一个或者最后一个数据的时候,会发生ArrayIndexOutO ...

  10. Xamarin 手动安装步骤+破解

    原文:Xamarin 手动安装步骤+破解 由于Xamarin运行的时候有很多依赖项,所以现在在官网上下载的XamarinInstall只是一个下载安装器,并不是软件包.它会自动下载安装所需的依赖软件, ...