spring task定时任务要怎么配置?该如何使用?

TheDisguiser 2020-07-06 16:54:07 java常见问答 6218

小伙伴们对于spring task中定时任务知道多少呢?今天我们就来了解下如何配置与使用spring task定时任务。

一、xml配置定时任务及使用

首先配置好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/context"  
    xmlns:aop="http://www.springframework.org/schema/aop"   
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd    
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd    
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd    
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd    
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd">  
  
    <task:annotation-driven /> <!-- 定时器开关-->  
  
    <bean id="myTask" class="com.spring.task.MyTask"></bean>  
  
    <task:scheduled-tasks>  
        <!-- 这里表示的是每隔五秒执行一次 -->  
        <task:scheduled ref="myTask" method="show" cron="*/5 * * * * ?" />  
        <task:scheduled ref="myTask" method="print" cron="*/10 * * * * ?"/>  
    </task:scheduled-tasks>  
      
    <!-- 自动扫描的包名 -->
    <context:component-scan base-package="com.spring.task" />  
      
</beans>

再定义任务执行逻辑

package com.spring.task;
/** 
 * 定义任务 
 */
public class MyTask
{
    public void show()
    {
        System.out.println("show method 1");
    }
    public void print()
    {
        System.out.println("print method 1");
    }
}

二、注解配置定时任务及使用

spring配置等同上

package com.spring.task;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * 基于注解的定时器  
 */
@Component
public class MyTask2
{
    /**
     * 定时计算。每天凌晨 01:00 执行一次
     */
    @Scheduled(cron = "0 0 1 * * *")
    public void show()
    {
        System.out.println("show method 2");
    }
    /**
     * 启动时执行一次,之后每隔2秒执行一次  
     */
    @Scheduled(fixedRate = 1000 * 2)
    public void print()
    {
        System.out.println("print method 2");
    }
}

以上就是本篇文章的所有内容,你了解了吗?想知道更多java项目中常见问题及答案就快来关注奇Q工具网吧。

推荐阅读:

Spring初始化过程详解

Spring AOP的应用场景详解

spring定时器注解如何配置?如何使用?