SpringBoot运行流程源码分析:run方法流程及监听器( 五 )


自定义实现类比较简单 , 可像通常实现一个接口一样 , 先创建类 MyApplicationRunListener , 实现接口 SpringApplicationRunListener 及其方法 。 然后在对应的方法内实现自己的业务逻辑 , 以下示例代码中只简单打印方法名称 。 与普通接口实现唯一不同的是 , 这里需要指定一-个参数依次为 SpringApplication 和 String[ ]的构造方法 , 不然在使用时会直接报错 。
public class MyApplicationRunListener implements SpringApplicationRunListener {public MyApplicationRunListener ( SpringApplication application, String[]args){System. out . println("MyApplicationRunListener constructed function");@Overridepublic void starting() {System. out . println("starting...");@Overridepublic void environmentPrepared(ConfigurableEnvironment environment) {System. out. println(" environmentPrepared...");//在此省略掉其他方法的实现 }【SpringBoot运行流程源码分析:run方法流程及监听器】当定义好实现类之后 , 像注册其他监听器一样 ,程序在 spring.factories 中进行注册配置 。 如果项目中没有 spring.factories 文件 , 也可在 resources 目录下先创建 META-INF 目录 , 然后在该目录下创建文件 sprig.factories 。
spring.factories 中配置格式如下 。
# Run Listenersorg. springframework. boot . SpringApplicationRunListener=\com. secbro2. learn. listener . MyApplicationRunListener启动 Spring Boot 项目 , 你会发现在不同阶段打印出不同的日志 , 这说明该实现类的方法已经被调用 。
本文给大家讲解的内容是run方法核心流程 SpringApplicationRunListener 监听器

  1. 下篇文章给大家讲解的是初始化ApplicationArguments和初始化 ConfigurableEnvironment;
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!