`

spring @scheduled 注解执行定时任务

 
阅读更多

以前框架使用quartz框架执行定时调度问题、

老大说这配置太麻烦、每个调度都需要多加在spring的配置中、

能不能减少配置的量从而提高开发效率、

最近看了看spring的 scheduled的使用注解的方式进行调度、

感觉很方便、起码配置的东西少了很多、

 

所以留下来以备忘了、

 

首先要配置我们的spring.xml

 

xmlns 多加下面的内容、

 

[html] view plain copy
 
  1. xmlns:task="http://www.springframework.org/schema/task"  

 

 

然后xsi:schemaLocation多加下面的内容、

 

[html] view plain copy
 
  1. http://www.springframework.org/schema/task  
  2. http://www.springframework.org/schema/task/spring-task-3.1.xsd  


最后是我们的task任务扫描注解

 

 

[html] view plain copy
 
  1. <task:annotation-driven/>  


我的配置扫描位置是:

 

 

[html] view plain copy
 
  1. <context:annotation-config/>  
  2.     <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>  
  3.     <context:component-scan base-package="com.test"/>  

 

 

扫描的是com.test这样的包下的内容、

下面需要接口和实现(我的这几个java文件都是com.test的包下的、)

 

[java] view plain copy
 
  1. public interface IMyTestService {  
  2.        public void myTest();  
  3. }  



 

 

 

[java] view plain copy
 
  1. @Component  //import org.springframework.stereotype.Component;  
  2. public class MyTestServiceImpl  implements IMyTestService {  
  3.       @Scheduled(cron="0/5 * *  * * ? ")   //每5秒执行一次  
  4.       @Override  
  5.       public void myTest(){  
  6.             System.out.println("进入测试");  
  7.       }  
  8. }  


执行后控制台就会打印出   进入测试   了

 

 

需要注意的几点:

1、spring的@Scheduled注解  需要写在实现上、

2、 定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true、具体就去百度google吧)

3、实现类上要有组件的注解@Component

 

剩下的就是corn表达式了、具体使用以及参数请百度google、

下面只例出几个式子

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触发 

 

分享到:
评论

相关推荐

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

    Cron 表达式是一种用于配置定时任务执行规则的标准格式,通常由六个或七个空格分隔的时间元素组成,分别代表秒、分、小时、日、月、周和年。其中,“?”、“,”、“-”、“/”等符号具有特定含义,用于表达不同的...

    Spring @Scheduled定时任务动态修改cron参数

    通过结合Spring的事件系统和反射技术,我们可以实现定时任务的动态配置,使得应用在运行时能够根据需求调整任务执行的频率。这在许多场景下都是非常有用的,比如监控、数据同步和其他需要定期执行的操作。

    Spring Boot中的@Scheduled注解:定时任务的原理与实现

    ### Spring Boot中的@Scheduled注解:定时任务的原理与实现 #### 一、引言 在现代软件开发中,定时任务是一种非常常见的需求。无论是数据同步、定期清理缓存还是发送提醒邮件,都需要应用程序能够在特定的时间点...

    Spring定时任务@Scheduled例子

    在Spring框架中,定时任务是实现自动化操作的重要组成部分,它允许开发者在预设的时间间隔执行特定的任务。`@Scheduled`注解是Spring提供的一个强大工具,用于声明式地配置定时任务,无需编写复杂的线程管理和调度...

    spring boot @scheduled定时任务配置

    在Spring Boot框架中,`@Scheduled`注解是用于创建定时任务的重要工具,它使得开发者无需依赖外部的任务调度器如Quartz或CronJob,就能在应用内部轻松地实现周期性的任务执行。这个特性极大地简化了Java应用中的定时...

    SpringBoot中使用@Scheduled注解创建定时任务的实现

    SpringBoot中使用@Scheduled注解创建定时任务的实现 SpringBoot中使用@Scheduled注解创建定时任务的实现是指在SpringBoot项目中使用@Scheduled注解来实现定时任务的方法。在SpringBoot项目中,使用@Scheduled注解...

    spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法

    "spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法" Spring Boot 中的定时任务是通过 @Scheduled 注解来实现的,该注解可以将方法标记为定时任务,Spring Boot 会自动发现并执行这些方法。@...

    详解Spring Boot中使用@Scheduled创建定时任务

    Spring Boot 框架为我们提供了多种方式来创建定时任务,其中一种方式是使用 @Scheduled 注解。@Scheduled 是 Spring Framework 中的一种注解,用于标记需要定时执行的方法。今天,我们将详细介绍如何使用 @Scheduled...

    Spring boot如何通过@Scheduled实现定时任务及多线程配置

    `@Scheduled` 注解是 Spring Framework 提供的一种注解,用于标记需要执行定时任务的方法。该注解可以与 `@EnableScheduling` 注解一同使用,以启用定时任务的功能。 要使用 `@Scheduled` 注解,首先需要在配置类上...

    spring 定时任务@Scheduled详解

    在Spring框架中,定时任务是通过`@Scheduled`注解实现的,该注解提供了灵活的方式来安排任务在特定时间执行。下面将详细讲解如何配置和使用`@Scheduled`,以及其相关的cron表达式。 首先,要启用Spring的定时任务...

    @scheduled任务调度使用详解及@scheduled与多线程和@Async异步任务结合使用

    在Spring Boot框架中,`@Scheduled`注解是用于实现定时任务的核心工具,它使得开发者可以轻松地在应用中设置周期性的任务执行。本篇文章将深入讲解`@Scheduled`的使用方法,以及如何将其与多线程和`@Async`异步任务...

    @ScheduleTask注解实现定时任务,带分布式锁

    首先,`@ScheduleTask` 是一种模拟Spring框架中的 `@Scheduled` 注解的用法,用于标记方法作为定时任务。该注解通常包含参数如 `cron` 表达式,用于定义任务的执行时间。例如: ```java @ScheduleTask(cron = "0 0/...

    SpringBoot执行定时任务@Scheduled的方法

    Spring Boot 执行定时任务 @Scheduled 的方法 Spring Boot 提供了对定时任务的支持,...Spring Boot 中的 @Scheduled 注解提供了灵活的定时任务执行方式,可以根据不同的需求,选择合适的执行规则,以满足业务需求。

    Spring-task定时任务

    1. **@Scheduled注解** - `@Scheduled`是Spring-task的核心注解,用于标记一个方法为定时任务。例如: ```java @Component public class ScheduledTasks { @Scheduled(fixedRate = 5000) public void ...

    IDEA使用springboot自带scheduled实现任务调度

    在Java开发领域,Spring Boot框架以其便捷的特性深受开发者喜爱,而Spring Boot集成的Scheduled功能则为开发者提供了定时任务调度的能力。本篇文章将详细介绍如何在IDEA中利用Spring Boot的Scheduled来实现任务调度...

    Spring定时任务实现(非Web项目)

    System.out.println("定时任务执行了"); } } ``` 这里的`fixedRate`属性指定了任务执行的间隔时间。 3. **启动应用**:确保你的应用正常启动后,Spring的定时任务就会按照设定自动开始执行。 此外,`@Scheduled`...

    Spring定时任务(Web项目)

    二、@Scheduled注解使用 1. 配置启用定时任务 首先,我们需要在Spring配置类上添加`@EnableScheduling`注解,开启定时任务的扫描。 ```java import org.springframework.scheduling.annotation.EnableScheduling; ...

    Spring 定时任务源码(spring 三种定时任务的实现方式)

    TaskExecutor接口是Spring提供的一个异步任务执行接口,它并不直接支持定时任务,但可以通过配合ScheduledExecutorService或者ThreadPoolTaskScheduler来实现定时任务。ScheduledExecutorService是Java的并发库提供...

    springMVC定时任务task方式实例代码

    2. **@Scheduled注解** `@Scheduled`是Spring的定时任务注解,可以设置多个参数: - `cron`:基于Cron表达式定义任务执行时间,如`cron = "0 0/5 * * * ?"`表示每5分钟执行一次。 - `fixedRate`:以毫秒为单位...

    spring注解Quartz定时执行功能

    System.out.println("定时任务执行:" + new Date()); // 在这里编写你的业务逻辑 } @Override public void execute(JobExecutionContext context) throws JobExecutionException { this.executeTask(); } }...

Global site tag (gtag.js) - Google Analytics