SpringBoot3-监听器
SpringApplicationRunListener
该监听器,监听SpringBoot应用的生命周期
1.自定义SpringApplicationRunListener
实现类
- 在
META-INF/spring.factories
中配置org.springframework.boot.SpringApplicationRunListener=自己的Listener,还可以指定一个有参数构造器,接受两个参数(SpringApplication application,String[] args)
Listener先要从 META-INF/spring.factories 读到
1、引导: 利用 BootstrapContext 引导整个项目启动
starting: 应用开始,SpringApplication的run方法一调用,只要有了 BootstrapContext 就执行
environmentPrepared: 环境准备好(把启动参数等绑定到环境变量中),但是ioc还没有创建;【调一次】
2、启动:
contextPrepared: ioc容器创建并准备好,但是sources(主配置类)没加载。并关闭引导上下文;组件都没创建 【调一次】
contextLoaded: ioc容器加载。主配置类加载进去了。但是ioc容器还没刷新(我们的bean没创建)。
=截止以前,ioc容器里面还没造bean呢=
started: ioc容器刷新了(所有bean造好了),但是 runner 没调用。
ready: ioc容器刷新了(所有bean造好了),所有 runner 调用完了。
3、运行
以前步骤都正确执行,代表容器running。
ApplicationRunner:感知特定阶段,Ready
CommandLineRunner:感知特定阶段,Ready
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)