Springboot有类似启动完毕后初始化的问题?

Springboot启动完毕了后 有类似启动完成事件通知吗?

问题是:
MyApplicationRunner implements ApplicationRunner 在编译prod的时候,也会执行run. 这个时候就会报一大堆读取db的错误.因为prod的db链接和dev的db链接不一样.

这个问题要怎么解决,

  1. 要么在编译的时候不要执行run
  2. 要么在运行起来后有什么事件通知可以处理后续的初始化事情?

这个有日志通知啊,可以观察日志里面的spring启动

太多这一类的启动回调了,SmartInitializingSingleton,SmartLifecycle,这都可以回调,springboot如果是使用ServletWebServerApplicationContext或者子类为容器类型的话,

img

,还会发布ServletWebServerInitializedEvent事件,自己监听这个事件即可,这都是在Refresh方法中的回调,打包跳过测试代码就不会触发了