Spring Task定时任务

Posted Vodka~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Task定时任务相关的知识,希望对你有一定的参考价值。

一.概述:
1.定时任务作为一种常见的需求,在java开发定时任务主要有三种解决方案:
-JDK的timer
-第三方组件: Quartz
-Spring Task
2.Timer是jdk自带的定时任务工具,对于复杂的定时规则无法满足,在实际项目中也不常用;
Quartz功能强大,但使用相对笨重。
Spring Task 则具备两者的优点,除相关的Spring包以外,不需要额外的包,支持注解和配置文件两种形式。

<?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:aop="http://www.springframework.org/schema/aop"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="
        http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task.xsd">

<!--      设置自动化扫描范围  -->
       <context:component-scan base-package="com.vodka" />
<!--     1. XML方式 配置定时任务 -->
        <task:scheduled-tasks>
               <task:scheduled ref="taskTest" method="jobOne" cron="0/2 * * * * ?"></task:scheduled>
        </task:scheduled-tasks>
</beans>

<!--       2.注解方式:配置定时任务驱动,spring才能识别 @Scheduled 注解-->
       <task:annotation-driven></task:annotation-driven>
XML配置scheduled
@Component
public class TaskTest 
    //定义日期格式
    private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    //定义定时任务的方法
    public void jobOne()
        System.out.println("Happy birthday on " + simpleDateFormat.format(new Date()));
    


注解配置
@Component
public class TaskTest 
    //定义日期格式
    private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    //定义定时任务的方法
    @Scheduled(cron = "1/5 * * * * ?")
    public void jobOne()
        System.out.println("Happy birthday on " + simpleDateFormat.format(new Date()));
    



以上是关于Spring Task定时任务的主要内容,如果未能解决你的问题,请参考以下文章

spring task 定时

Spring Task定时任务

Spring Task定时任务

Spring Task定时任务

Spring Boot 中使用 Spring Task 实现定时任务

Spring Boot 中使用 Spring Task 实现定时任务