spring自带定时器

http://www.cnblogs.com/pengmengnan/p/6714203.html

注解模式的spring定时器
1 , 首先要配置我们的spring.xml
xmlns 多加下面的内容、
xmlns:task="http://www.springframework.org/schema/task 

然后xsi:schemaLocation多加下面的内容、
1. http://www.springframework.org/schema/task 
2. 
http://www.springframework.org/schema/task/spring- 
task-3.1.xsd 
2,task任务扫描注解
<task:annotation-driven/>
3,配置扫描位置是:
<context:annotation-config/> 
<bean 
class="org.springframework.beans.factory.annotation.Au 
towiredAnnotationBeanPostProcessor"/> 
<context:component-scan base- 
package="com.jk.spring"/> 
4 ,写一个接口
public interface SpringHorodateurI {
public void myTest(); 
}
5,接口实现类
//import 
org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;

@Component //import 
org.springframework.stereotype.Component;
public class SpringHorodateur implements 
SpringHorodateurI{

@Scheduled(cron="0/5 * * * * ? ") //每5秒执行一 
次 
@Override 
public void myTest() {
System.out.println(">>>>>>>>>>>>>进入测 
试!!");
}

}

完成!
需要注意的几点:
1、spring的@Scheduled注解 需要写在实现上、
2、 定时器的任务方法不能有返回值(如果有返回值,spring初始 
化的时候会告诉你有个错误、需要设定一个proxytargetclass的 
某个值为true、具体就去百度google吧)
3、实现类上要有组件的注解@Component

配置文件格式的定时器
1、spring的配置文件
<beans 
xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema- 
instance" 
xmlns:p="http://www.springframework.org/schema/p"

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

xmlns:context="http://www.springframework.org/schema/c 
ontext"

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

xsi:schemaLocation="http://www.springframework.org/sch 
ema/beans

http://www.springframework.org/schema/beans/spring- 
beans-3.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx- 
3.0.xsd 
http://www.springframework.org/schema/jee 
http://www.springframework.org/schema/jee/spring-jee- 
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/aop 
http://www.springframework.org/schema/aop/spring-aop- 
3.0.xsd 
http://www.springframework.org/schema/task 
http://www.springframework.org/schema/task/spring- 
task-3.0.xsd">

<task:annotation-driven /> <!-- 定时器开关--> 
<bean id="myTaskXml" 
class="com.spring.task.MyTaskXml"></bean> 
<task:scheduled-tasks> 
<!-- 
这里表示的是每隔五秒执行一次 
--> 
<task:scheduled ref="myTaskXml" method="show" 
cron="*/5 * * * * ?" /> 
<task:scheduled ref="myTaskXml" method="print" 
cron="*/10 * * * * ?"/> 
<!-- 和注解的区别-->
</task:scheduled-tasks> 
<!-- 自动扫描的包名 --> 
<context:component-scan base- 
package="com.spring.task" />

</beans> 
2、基于xml的定时器任务
/** 
* 基于xml的定时器 
* @author hj 
*/ 
public class MyTaskXml { 
public void show(){ 
System.out.println("XMl:is show run"); 
}

public void print(){ 
System.out.println("XMl:print run"); 

}

CRON表达式 含义 
"0 0 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分每分钟一次触 
发 
"0 0/5 14 * * ?" 每天从下午2点开始到2:55分结束每5分钟 
一次触发 
"0 0/5 14,18 * * ?" 每天的下午2点至2:55和6点至6点55 
分两个时间段内每5分钟一次触发 
"0 0-5 14 * * ?" 每天14:00至14:05每分钟一次触发 
"0 10,44 14 ? 3 WED" 三月的每周三的14:10和14:44触发 
"0 15 10 ? * MON-FRI" 每个周一、周二、周三、周四、周五 
的10:15触发

时间: 2024-11-05 15:59:53

spring自带定时器的相关文章

Spring自带定时器实现定时任务

在Spring框架中实现定时任务的办法至少有2种(不包括Java原生的Timer及Executor实现方式),一种是集成第三方定时任务框架,如无处不在的Quartz:另一种便是Spring自带的定时器(仅针对3.0之后的版本).本文将围绕Spring自带定时器,模拟实现一个最简单的定时任务,看看使用起来到底有多简单. 第二步,启动Schedule配置,XML方式的配置请自行搜索,本文仅针对注解方式的实现提供说明. @EnableScheduling @EnableScheduling注解,用来引

使用spring自带定时器: @Scheduled

项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息之类的.平时使用Quartz比较多,但配置相对麻烦一点.今天就来说说Spring自带的定时任务. Spring自带实现定时任务有两种方式,一种是通过注解的方式实现,一种是通过在配置文件中配置后实现. 一.通过spring的注解( @Scheduled)实现定时任务. 首先当然是Springde 配置: 第一步:添加这三段: xmlns:task="http://www.springframework.org/sche

spring自带测试配置

spring自带的测试注解 @ContextConfiguration(locations="classpath:applicationContext.xml")@RunWith(SpringJUnit4ClassRunner.class) public class TestUserDaoImpl extends AbstractJUnit4SpringContextTests{ @Autowired UserDao userDao; //TODO } classpath:applic

Spring自带mock测试Controller

转自:http://blog.csdn.net/yin_jw/article/details/24726941 分类: Spring开源框架2014-04-29 17:01 1786人阅读 评论(2) 收藏 举报 Spring自带mock测试Contro 准备SpringMVC环境 注意:使用mock测试需要引入spring-test包 Base类:加载配置文件 [java] view plaincopy package com.wyy.snail.user.controller; import

spring启动quartz定时器

在很多中经常要用到定时任务,quartz是定时器中比较好用的,在Spring中使用quartz是很容易的事情,首先在spring的applicationContext.xml文件中增加如下配置: <!-- quartz定时器定义 --> <!-- 要调用的工作类,即任务处理类 --> <bean id="quartzJob" class="com.mdnet.travel.core.model.QuartzJob"></be

aop 注解 开启spring自带的事务

一些基本知识 可以 http://jinnianshilongnian.iteye.com/blog/1415606 serviceImpl.java 1 package cn.us.service.impl; 2 3 import java.util.List; 4 import java.util.UUID; 5 6 import javax.annotation.Resource; 7 8 import org.springframework.beans.factory.annotatio

Spring的quartz定时器重复执行二次的问题解决

Spring的quartz定时器同一时刻重复执行二次的问题解决 最近用Spring的quartz定时器的时候,发现到时间后,任务总是重复执行两次,在tomcat或jboss下都如此. 打印出他们的hashcode,发现是不一样的,也就是说,在web容器启动的时候,重复启了两个quartz线程. 研究下来发现quartz确实会加载两次: 第一次:web容器启动的时候,读取applicationContext.xml文件时,会加载一次. 第二次:Spring本身会加载applicationConte

【原】使用Spring自带的JdbcTemplate。

使用Spring自带的JdbcTemplate,可以简化对数据库的操作,用起来十分方便.通过一下几个步骤的配置,即可以使用JdbcTemplate. (1)配置好Spring的数据源,加入mysql驱动jar包,配置好数据库的properties文件. 加入mysql驱动jar包,配置好数据库的properties文件的步骤在此省略,仅仅给出c3p0数据原的配置,如下所示. 1 <bean id="c3p0DataSource" class="com.mchange.v

【Spring】JavaMailSender Spring自带的邮件推送功能实现

备注:JavaMailSender在spring-context-support.jar中 1.配置spring-mail.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins