Spring或SpringBoot项目随项目启动而启动线程执行特定任务的方法

简介: 项目启动,你是否有需求需要某个任务能随着项目启动就去执行某个任务呢?

当然方法不止一种    如注解:@PostConstruct   或者springBoot项目实现 ApplicationRunner


importcom.gpyh.gms.server.service.goods.GoodsInfoSynchService;importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.context.ApplicationListener;
importorg.springframework.context.annotation.DependsOn;
importorg.springframework.context.event.ContextRefreshedEvent;
importorg.springframework.stereotype.Component;
importjava.util.concurrent.ExecutorService;
importjava.util.concurrent.Executors;
@Component//@DependsOn({"需要依赖的类(启动的线程,需要在这个类后面完成初始化可添加)"})publicclassMyApplicationListenerimplementsApplicationListener<ContextRefreshedEvent> {
privatestaticfinalLoggerlogger=LoggerFactory.getLogger(MyApplicationListener.class);
@AutowiredprivateGoodsInfoSynchServicegoodsInfoSynchService;
@OverridepublicvoidonApplicationEvent(ContextRefreshedEventevent) {
// 创建单线程池ExecutorServiceexecutor=Executors.newSingleThreadExecutor();
logger.info("线程启动监控");
executor.execute(()->**需要执行的任务**);
    }
}

importorg.springframework.stereotype.Component;
importjavax.annotation.PostConstruct;
@ComponentpublicclassQueueMonitor {
@PostConstructpublicvoidstartQueueMonitor() {
Threadthread=newThread(newYourQueueMonitorRunnable());
thread.start();
    }
privateclassYourQueueMonitorRunnableimplementsRunnable {
@Overridepublicvoidrun() {
// 监控队列的逻辑        }
    }
}
目录
相关文章
|
1月前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
33 1
|
2月前
|
存储 安全 Java
|
1月前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
30 1
|
2月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
93 2
|
2月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
143 1
|
2月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
30 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
2月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
31 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
1月前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
24 0
|
2月前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
113 0
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
3286 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器