我们在实现ApplicationRunner
和CommandLineRunner
接口来进行一些初始化操作时,当实现的方法run()
中出现报错异常,会导致SpringBoot应用程序启动失败或已启动的应用挂掉。
通过查看源码可以看到,SpringBoot启动时会调用callRunners()
方法,该方法中又会去处理ApplicationRunner、CommandLineRunner,重写的run()
,方法体中出现异常会被抛出从而导致主程序失败。
解决方法:
① 重写ApplicationRunner或CommandLineRunner的run()方法中的内容可以新开一个线程来处理,避免影响主线程;
② 通过try catch
语句处理掉异常。