springboot启动前执行方法的几种方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot启动前执行方法的几种方式相关的知识,希望对你有一定的参考价值。

参考技术A 第一种 @PostConstruct注解

第二种 实现InitializingBean接口

第三种 实现BeanPostProcessor接口

第四种 在启动类run之前执行方法

当然这是不可取的

他们运行的优先级是

启动类前->BeanPostProcessor->@PostConstruct->InitializingBean

值得注意的是第三种方式,他可以让实现类里的方法提前执行

同样的使用@PostConstruct的两个类

第一个没有实现BeanPostProcessor接口

第二个实现了BeanPostProcessor接口,但是没有重写他的方法

打印结果如下

可以看到同样是使用了@PostConstruct注解,但是他们的执行顺序却截然不同

BeanPostProcessor为每一个spring维护的对象调用前后做操作,实现了它我们当前类就会变成一个BeanPostProcessor对象,就可以像BeanPostProcessor一样在容器加载最初的几个阶段被实例化,只要被实例化,PostConstruct注解的标注的方法就会立即执行,具体可以参照这篇博文

https://www.jianshu.com/p/1417eefd2ab1

知道了启动时的加载顺序,对我们做一些初始化工作有帮助。

以上是关于springboot启动前执行方法的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot启动时实现自动执行代码的几种方式讲解

Spring Boot 启动时自动执行代码的几种方式。。

springboot启动之后初始化数据的几种方法

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式

一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式