Springboot集成SpringTask

简介: Springboot集成SpringTask

Springboot集成SpringTask

基于注解配置

第一步

在springboot启动类中添加注解@EnableScheduling

package top.simba1949;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
 * @author simba@onlying.cn
 * @date 2018/7/9 20:08
 */
@SpringBootApplication
@EnableScheduling // 支持schedule定时任务
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }
}


第二步

编写定时任务

package top.simba1949.task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * @author simba@onlying.cn
 * @date 2018/7/10 20:52
 */
@Component
public class MySpringTask {
    private Logger logger = LoggerFactory.getLogger(MySpringTask.class);
    /**
     * spring task,@Scheduled(cron = "0/5 * * * * ? ")即可开启定时任务
     */
    @Scheduled(cron = "0/5 * * * * ? ")
    public void doTask(){
        logger.info(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()) + "  "+ Thread.currentThread().getName());
    }
}


基于配置文件

第一步

创建applicationContext-task.xml

<?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:task="http://www.springframework.org/schema/task"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
       http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 扫描组件 -->
    <context:component-scan base-package="top.simba1949.task" />
    <!-- 配置调度器,声明十个线程的池 -->
    <task:scheduler id="myScheduler" pool-size="10"/>
    <!-- 配置任务 -->
    <task:scheduled-tasks scheduler="myScheduler">
        <!--ref引用的定时任务的Bean,method指定该bean要执行的方法-->
        <task:scheduled ref="mySpringTask" method="doTask" cron="0/5 * * * * ? "/>
        <!--配置定时任务2-->
        <task:scheduled ref="mySpringTask02" method="doTask" cron="0/3 * * * * ? "/>
    </task:scheduled-tasks>
</beans>


第二步

将配置文件加入spring容器管理

package top.simba1949.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
/**
 * @author simba@onlying.cn
 * @date 2018/7/9 20:09
 */
@Configuration
@ImportResource(locations = "applicationContext-springtask.xml")
public class SpringTaskConfig {
}


第三步

编写定时任务

package top.simba1949.task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ThreadFactory;
/**
 * @author simba@onlying.cn
 * @date 2018/7/10 20:52
 */
@Component
public class MySpringTask {
    private Logger logger = LoggerFactory.getLogger(MySpringTask.class);
    /**
     * spring task,@Scheduled(cron = "0/5 * * * * ? ")即可开启定时任务
     */
    public void doTask(){
        logger.info(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()) + "  "+ Thread.currentThread().getName());
    }
}


目录
相关文章
|
2月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
42 2
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
73 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
23天前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
46 0
|
2月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
83 2
|
5月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
316 6
|
5月前
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
419 4
|
5月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
377 1
|
6月前
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
185 2
|
6月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
448 1
下一篇
DataWorks