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启动前执行方法的几种方式的主要内容,如果未能解决你的问题,请参考以下文章
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式