springboot启动完成后执行?

springbootrun方法什么时候扫描的配置类

SpringBootRun方法会在应用启动时扫描配置类。SpringBootRun方法郑蚂裂是一个静态方法,它可以接受一个参数,该参数是一个字符串数组,其中包含要传递给应用程序的参数。SpringBootRun方法会调用SpringApplication类的run方法,该方法会接受一个参数,该参数是一个配置类,它物携包含了应用程序所需的所有配置信息。在调用run方法之喊闭后,SpringBootRun方法会扫描该配置类,以确定应用程序需要加载哪些组件。一旦所有组件都被加载,应用程序就可以正常运行了。

如何在 springboot 启动之后 执行一段逻辑?

不知道 这个问题你思考过没???或者 实际业务场景中 有这种诉求没?

org.springframework.boot.CommandLineRunner 是 Spring Boot 提供的一个接口,当你实现该接口并将之注入 Spring IoC 容器后, Spring Boot 应用启动后就会执行其run方法。一个 Spring Boot 可以存在多个CommandLineRunner的实现,当存在多个时,你可以实现Ordered接口控制这些实现的执行顺序( Order 数值越大优先级越低 )。接下来我们来声明两个实现并指定顺序:

下面让我们通过代码实例 来看看 如何执行的。

首先构造两个类,并加入容器:

启动项目 查看打印日志 顺序~~~

可以看到项目启动之后,自动就执行了,刚好 满足了 我们的需求,容器启动之后自动帮我们调用,前提 类需要加入到容器中局慎悔并实现孝圆接口桐正。

下一节,我们来探讨 另外一种 更常用的 项目启动之后 需要执行的初始化逻辑的变种实现 ~

SpringBoot 在初始化之后执行某项操作的方法

在任意方法上加入 @PostConstruct ,例如

这种方法需要一个配置类,也就是加上了 @Configuration 注解

在返回某个类的方法上加入 @Bean 注解进行注入,其参数需带有 initMethod ,其值为想要执行初始化方法的名厅凳称,配置类例如

实际使岁岁用的类例如

该接口的定义扮雀旅如下

通过实现这个接口的 afterPropertiesSet 方法,来完成初始化操作,例如

构造方法 -- @PostConstruct -- InitializingBean接口 -- @Bean 注入的init-method

在大型系统里千万要注意顺序

SpringBoot 项目启动后执行代码

在开发的过程中渗困,有时需要在应用启动后自动进行一些操作, 比如:项目启动前初始化资源文件、初始化线程池、提前加载加密证书等等。稿喊纳下边介绍两个接口CommandLineRunner 和 ApplicationRunner 来满足我们的需求,它们会在spring Bean初始化之后SpringApplication run方法执行之前调用,如果需要指定执行顺序,可以使用键没@Order注解,值越小越先执行。

执行顺序:

ApplicationRunner

CommandLineRunner

执行结果

想springboot启动完成后执行某个方法

实现方法有2个。

一、ApplicationRunner

实现ApplicationRunner接口

打上 @Component + implements ApplicationRunner

二、CommandLineRunner

实现CommandLineRunner接口

打上 @Component + implements CommandLineRunner

SpringApplication的run方法猜纯会执行穗弊咐afterRefresh方法

afterRefresh会触发callRunners方法

callRunners方法会调卜槐用容器里面所有实现了ApplicationRunner、CommandLineRunner接口的方法

springboot启动完成后执行?  第1张

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 13:58
下一篇 2023-09-23 13:58

相关推荐

发表回复

登录后才能评论