SpringTask定时器

1 概念

SpringTask是spring3.0后自主提供的定时任务的工具, spring-task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种形式。这里主要介绍SpringTask的使用方式

2 xml配置方式

1.添加task命名空间
2.Spring创建任务所在的类型的对象,配置定时任务(在spring主配置文件中)

<!--Spring 定时任务 xml写法-->
    <bean id="writeIndex" class="com.project.writerindex.WriteIndex"></bean>
    <!--配置定时任务-->
    <task:scheduled-tasks>
        <!--
            ref:执行的类
            method:执行的方法
            cron:
        -->
        <task:scheduled ref="writeIndex" method="writeRun" cron=" */3 * * * * ? "/>
    </task:scheduled-tasks>

在这里插入图片描述
3.在测试方式中获取容器,启动容器
在这里插入图片描述

3 注解方式

1.添加task的注解驱动(在spring主配置文件中)

	<!--task的注解驱动-->
    <task:annotation-driven/>

2.添加IoC注解,并且在任务类上标注@Component注解

	<!--IoC注解-->
    <context:component-scan base-package="com.project.writerindex"/>

3.执行的方法上标注@scheduled注解
在这里插入图片描述
•任务类必须在spring的容器中, 否则@Scheduled不起效

4 cron表达式

一个cron表达式有至少6个用空格分隔的时间元素。
1. 按顺序依次为
1. 秒(0~59)
2. 分钟(0~59)
3. 小时(0~23)
4. 天(0~31)
5. 月(0~11)
6. 星期(1~7 1为SUN-依次为SUN,MON,TUE,WED,THU,FRI,SAT)
7. 年份(1970-2099)
2. 举例说明:
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
*/1 * * * * ? 每隔一秒执行一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架中,有多种方式可以实现定时任务调度。以下是Spring内置的定时器实现方式: 1. 使用`@Scheduled`注解:在需要执行定时任务的方法上添加`@Scheduled`注解,并配置相应的定时任务表达式。例如: ```java import org.springframework.scheduling.annotation.Scheduled; public class MyScheduledTask { @Scheduled(cron = "0 0 0 * * ?") // 每天凌晨执行 public void myTask() { // 执行定时任务的逻辑 } } ``` 2. 实现`SchedulingConfigurer`接口:创建一个类实现`SchedulingConfigurer`接口,并重写`configureTasks`方法,用于配置定时任务。例如: ```java import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.config.ScheduledTaskRegistrar; @Configuration @EnableScheduling public class MyTaskConfig implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { // 配置定时任务 taskRegistrar.addCronTask(() -> { // 执行定时任务的逻辑 }, "0 0 0 * * ?"); // 每天凌晨执行 } } ``` 3. 使用XML配置:在Spring的XML配置文件中使用`<task:scheduled>`标签来配置定时任务。例如: ```xml <beans xmlns:task="http://www.springframework.org/schema/task"> <task:scheduler id="myScheduler" pool-size="10" /> <task:scheduled ref="myTaskBean" method="myTask" cron="0 0 0 * * ?" /> <bean id="myTaskBean" class="com.example.MyTaskBean" /> </beans> ``` 这些是Spring内置的一些定时任务调度的实现方式,根据项目的需求和个人偏好,选择适合的方式来实现定时任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值