首页>>后端>>SpringBoot->springboot启动完成后执行?

springboot启动完成后执行?

时间:2023-12-05 本站 点击:0

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/12732.html