广告
返回顶部
首页 > 资讯 > 精选 >springboot项目启动后的执行方法有哪些
  • 793
分享到

springboot项目启动后的执行方法有哪些

2023-07-02 10:07:11 793人浏览 薄情痞子
摘要

今天小编给大家分享一下SpringBoot项目启动后的执行方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 方法A

今天小编给大家分享一下SpringBoot项目启动后的执行方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1 方法

  • ApplicationListener< ContextRefreshedEvent> 不推荐

  • ApplicationListener  推荐

  • CommandLineRunner 推荐

方法1:spring的ApplicationListener< ContextRefreshedEvent>接口

实现ApplicationListener接口,并实现 onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent)方法

@Servicepublic class SearchReceive implements  ApplicationListener<ContextRefreshedEvent> {   @Override   public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {       if (contextRefreshedEvent.getApplicationContext().getParent() == null) {//保证只执行一次           //需要执行的方法       }   }}

方法2:springboot的ApplicationRunner接口

ApplicationListener和CommandLineRunner两个接口是springBoot提供用来在spring容器加载完成后执行指定方法。两个接口区别主要是入参不同。

实现ApplicationRunner接口

@Component@Order(value = 1)public class AfterRunner implements ApplicationRunner {    @Override    public void run(ApplicationArguments args) throws Exception {        System.out.println("执行方法");    }}

方法3:springboot的CommandLineRunner接口

实现CommandLineRunner接口

@Component@Order(value = 2)public class CommandLineRunnerImpl implements CommandLineRunner {    @Override    public void run(String... args) throws Exception {        System.out.println("执行方法");    }}

注:如果同时implements   ApplicationListener和CommandLineRunner两个接口,ApplicationRunner接口的方法先执行,CommandLineRunner后执行;

@Slf4j@Componentpublic class RunnerTest implements ApplicationRunner, CommandLineRunner {   @Override  public void run(ApplicationArguments args) throws Exception {    System.out.println("服务启动RunnerTest   ApplicationRunner执行启动加载任务...");  }   @Override  public void run(String... args) throws Exception {    System.out.println("服务启动RunnerTest    CommandLineRunner 执行启动加载任务...");    }  }}

2 指定执行顺序

当项目中同时实现了ApplicationRunner和CommondLineRunner接口时,可使用Order注解或实现Ordered接口来指定执行顺序,值越小越先执行。

3 原理

SpringApplication 的run方法会执行afterRefresh方法。

afterRefresh方法会执行callRunners方法。

callRunners方法会调用所有实现ApplicationRunner和CommondLineRunner接口的方法。

以上就是“springboot项目启动后的执行方法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: springboot项目启动后的执行方法有哪些

本文链接: https://www.lsjlt.com/news/341157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作