`

spring3.2 @Scheduled注解 定时任务

阅读更多

1.首先加入下载spring3.2 ,http://projects.spring.io/spring-framework/

 
2.加入jar包,在applicationContext.xml加入声明
 
-xmlns加入
 
[java 
xmlns:task="http://www.springframework.org/schema/task"  
-xsi加入
[java]  
http://www.springframework.org/schema/task   
[java] 
http://www.springframework.org/schema/task/spring-task-3.2.xsd"  
 
[java] 
<!-- 使用Annotation自动注册Bean,解决事物失效问题:在主容器中不扫描@Controller注解,在SpringMvc中只扫描@Controller注解。  -->  
<context:component-scan base-package="com.zt49">  
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />  
</context:component-scan>  
 
任务注解
 
[java]  
<task:annotation-driven />  
 
3.创建一个任务类(示例)
[java] 
import org.springframework.context.annotation.Lazy;  
import org.springframework.scheduling.annotation.Scheduled;  
import org.springframework.stereotype.Component;  
  
@Component  
public class TestTask {  
      
    @Scheduled(cron = "0 0/1 * * * ?")  
    public void test(){  
        System.out.println("test");  
    }  
  
}  
启动程序,定时任务就可以了。这个示例代表每分钟执行一次任务。
 
附:cron常用表示:
 
CronTrigger配置格式:
   格式: [秒] [分] [小时] [日] [月] [周] [年]
序号 说明 是否必填 允许填写的值 允许的通配符
 1   秒    是      0-59 ,         - * /
2    分    是      0-59 ,        - * /
3    小时  是      0-23 ,       - * /
4    日    是      1-31 ,      - * ? / L W
5    月    是    1-12 or JAN-DEC , - * /
6    周     是     1-7 or SUN-SAT , - * ? / L #
7    年     否     empty 或 1970-2099 , - * /
 
通配符说明:
* 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。
? 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为"?" 具体设置为 0 0 0 10 * ?
- 表示区间。例如在小时上设置 "10-12",表示 10,11,12点都会触发。
, 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发
/ 用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)。 在月字段上设置'1/3'所示每月1号开始,每隔三天触发一次。
L 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于"7"或"SAT"。如果在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本 月最后一个星期五"
W 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。如果指定格式为 "1W",它则表示每月1号往后最近的工作日触发。如果1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体的数字,不允许区间"-").
小提示
'L'和 'W'可以一组合使用。如果在日字段上设置"LW",则表示在本月的最后一个工作日触发(一般指发工资 )
# 序号(表示每月的第几个周几),例如在周字段上设置"6#3"表示在每月的第三个周六.注意如果指定"#5",正好第五周没有周六,则不会触发该配置(用 在母亲节和父亲节再合适不过了)
小提示
周字段的设置,若使用英文字母是不区分大小写的 MON 与mon相同.
 
常用示例:
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分每分触发
0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
0 0/5 14,18 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发) 每天下午的 18点到18点59分(整点开始,每隔5分触发)
0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发
0 10,44 14 ? 3 WED 3月分每周三下午的 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 每月的第三周的星期五开始触发
0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
0 11 11 11 11 ? 每年的11月11号 11点11分触发
 
分享到:
评论

相关推荐

    使用spring @Scheduled注解执行定时任务

    ### 使用Spring `@Scheduled` 注解执行定时任务 在现代软件开发中,特别是企业级应用领域,定时任务处理是一项常见的需求。例如,自动备份数据库、定时发送报告邮件、定期清理缓存等。Spring 框架自3.0版本起引入了...

    spring3.2.jar

    同时,`@Scheduled`注解则允许定时任务的定义,方便进行计划任务的管理。 Spring 3.2还强化了与WebSocket协议的集成,提供了`WebSocketMessageBroker`,使得双向通信成为可能,这对于实时应用(如聊天室、股票交易...

    Struts2.3.8 Spring 3.2 Hibernate4.1.9 集成,初始化、定时器示例

    例如,可以通过`@Scheduled`注解创建一个定时任务,或者在配置文件中定义一个`TaskScheduler`或`TaskExecutor`。 实现CRUD(创建、读取、更新、删除)操作是SSH集成的一个基本应用场景。在Struts2中,定义Action类...

    Spring boot 实现定时器.docx

    Spring Boot 通过`@EnableScheduling`注解和`@Scheduled`注解为开发者提供了便捷的定时任务支持,使得创建和管理定时任务变得异常简单。 #### 三、核心概念与配置 ##### 3.1 启用定时任务支持 要在Spring Boot项目...

    Spring 3.2.0 API_CHM

    6. **任务调度与执行**:Spring的Task模块支持定时任务和后台任务的执行,如使用@Scheduled注解进行定时任务的定义。 7. **测试支持**:Spring提供了一套完整的测试框架,包括单元测试、集成测试和端到端测试,支持...

    Spring+Quartz2.2.0+Demo源码实战演练【精华篇2014】

    在本实战演练中,我们将深入探讨如何在Spring框架中集成...同时,这也是一个良好的起点,帮助你进一步研究Quartz的高级特性和Spring的其他定时任务解决方案,例如Spring Boot的`@Async`注解和Spring Cloud Data Flow。

    spring 定时器的 .jar包

    1. **使用`@Scheduled`注解**:这是最常用的方式,可以直接在方法上添加`@Scheduled`注解,声明一个定时任务。注解中可以指定执行频率,例如cron表达式或固定延迟。 ```java @Component @EnableScheduling ...

    spring基于task标签和通过xml配置实现任务的区别

    在Spring框架中,任务调度是实现定时任务的关键功能,它提供了两种主要的配置方式:基于`&lt;task&gt;`标签和通过XML配置。这两种方法都旨在帮助开发者轻松地在应用中引入和管理后台任务,但它们之间存在一些差异和适用...

    SpringBoot常用注解详解含使用示例(值得珍藏)

    - **定义**: `@Scheduled`用于定时任务调度。 - **用途**: 支持cron表达式和固定时间间隔的定时任务。 **6.4 @Cacheable** - **定义**: `@Cacheable`用于缓存方法的结果。 - **用途**: 支持基于方法调用结果的缓存...

    Java应用多机器部署解决大量定时任务问题

    在实现中,可以使用Spring的Scheduled注解来配置定时任务,并使用数据库来存储定时任务的信息。同时,需要确保只有一个机器能够执行定时任务,以免多台机器同时执行同一个定时任务。 下面是解决方案的详细实现: ...

    spring配置定时器

    Spring框架提供了多种实现定时任务的方式,包括但不限于`@Scheduled`注解、`ScheduledExecutorService`以及`Timer`类。其中,基于`Timer`类的定时任务配置较为传统但依然具有一定的实用价值,尤其是在需要控制任务...

    Java开发者必须掌握的20个Spring 常用注解.pdf

    ### Java开发者必须掌握的20个...以上是Spring框架中常用的20个注解,涵盖了Spring的核心功能,包括依赖注入、配置管理、AOP、异步任务和定时任务等。熟练掌握这些注解能够帮助开发者更加高效地进行Spring应用开发。

    spring时间调度配置

    `Scheduled`注解是Spring中最简单的定时任务实现方式之一。只需要在目标方法上添加此注解,并配置相应的参数即可实现定时任务。例如: ```java @Component public class ScheduledTasks { @Scheduled(cron = "0 0...

    Spring Quartz 定时器示例(Java工程版)

    - Spring 3.2及以上版本提供了`@Scheduled`注解,可以直接在方法上声明定时任务,简化了Quartz的使用。但这种方式不涉及Quartz的高级特性。 8. **监控和管理** - Quartz提供了Web管理界面JConsole,也可以通过API...

    SpringBoot新手学习手册.pdf

    springboot学习资料 ...8.1、使用@Scheduled创建定时任务 9 8.2、使用@Async实现异步调用 9 8.3、自定义参数 9 8.4、多环境配置 9 8.5、修改端口号 9 8.6、SpringBoot yml 使用 9 8.7、发布打包 9

    Spring Boot面试题(2022最新版)-重点

    Spring Boot 支持通过 `@Scheduled` 注解来定义定时任务。可以通过配置定时任务的执行周期(如每天执行一次、每分钟执行一次等)来实现自动化任务处理。 以上是对 Spring Boot 相关知识点的详细解释,涵盖了 Spring...

    java延迟队列.docx

    1. **配置定时任务**: 在服务启动时配置定时任务,使用`@Scheduled`注解设置每隔2天执行一次订单状态检查。 2. **编写检查逻辑**: 定义一个方法用于检查所有未支付订单,并判断其创建时间是否超过2天。 3. **执行...

    Spring内置任务调度如何实现添加、取消与重置详解

    通常,我们可以通过在类上使用`@Scheduled`注解来定义定时任务。但是,如果需要动态管理任务,如添加、删除或修改任务,我们可以利用`@EnableScheduling`配合`org.springframework.scheduling.annotation....

    Java_Web定时器使用

    ### Java Web定时器使用详解 #### 一、Java定时器简介 Java定时器(`java.util.Timer`)是...此外,随着技术的发展,Spring框架提供了更为灵活和强大的定时任务解决方案,如`@Scheduled`注解等,也值得学习和探索。

    基于爬虫的美食推荐小程序设计与实现.docx

    `@Scheduled`注解用于定义定时任务,在SpringBoot项目中非常方便地实现定期执行某些任务的需求。例如,可以在指定的时间间隔内自动执行爬虫任务,更新美食数据。 ##### 1.3 Java线程池、缓冲队列和同步锁 **1.3.1 ...

Global site tag (gtag.js) - Google Analytics