最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

Spring Task定时任务学习_@Scheduled注解使用

Javaweb 太平洋学习网 浏览 评论

很多人不知道Spring框架里面实际上整合了一个Spring Task定时任务的功能,我们只需要添加一些spring配置,然后在需要执行定时任务的方法上@Scheduled注解,当项目运行之后,就会自动定时调用方法了,@Scheduled注解支持quartz表达式的形式,下面来一起学习Spring Task定时任务吧!

20180913140020.jpg

步骤一:我们是spring maven项目,首先我们需要在自己的pom.xml文件中加入spring-context配置,如下所示:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>5.0.9.RELEASE</version>
</dependency>

步骤二:我们在项目中新建一个app-context.xml的spring配置文件,用来扫描@Scheduled注解中定义的定时方法,代码如下:

<?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:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
    
    <!-- 自动扫描项目包文件 -->  
    <context:component-scan base-package="com.tpyyes" />
    <!-- 定时任务扫描驱动 -->
    <task:annotation-driven scheduler="myScheduler" mode="proxy"/>  
    <task:scheduler id="myScheduler" pool-size="10"/>
</beans>

步骤三:定义定时任务,下面有两个需要执行的方法,要注意,一定不要忘记添加“@Component”这个注解,代码如下:

package com.tpyyes;

import java.util.Date;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class TaskClass {
	
	@Scheduled(cron="0/3 * * * * *")
	public void cronRun(){
		System.out.println("每隔3秒执行 " + new Date());
	}
	
	@Scheduled(initialDelay=3000,fixedRate=1000)
	public void delayRun(){
		System.out.println("延时3秒之后,每隔1秒执行 " + new Date());
	}
		
}

备注:initialDelay属性表示初始化的时候延时N秒,fixedRate属性表示每隔N秒执行一次,cron代表的是quartz cron表达式。

步骤四:测试Spring Task定时任务,我们在main方法中进行,代码如下:

package com.tpyyes;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDemo {
	public static void main(String[] args) {
	    //启动spring 
	    ApplicationContext ctx = new ClassPathXmlApplicationContext("app-context.xml");
	}
}

输出结果如下:

每隔3秒执行 Thu Sep 13 14:06:18 CST 2018

延时3秒之后,每隔1秒执行 Thu Sep 13 14:06:19 CST 2018

延时3秒之后,每隔1秒执行 Thu Sep 13 14:06:20 CST 2018

延时3秒之后,每隔1秒执行 Thu Sep 13 14:06:21 CST 2018

每隔3秒执行 Thu Sep 13 14:06:21 CST 2018

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/758.html

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论