十五.获取所有的run方法的侦听器

获取所有run方法的侦听器的方法为: SpringApplication里面的getRunListeners(String[] args)方法,该方法的定义如下:

private SpringApplicationRunListeners getRunListeners(String[] args) {

// 组装SpringApplicationRunListener实现类所需要的参数类型

  Class<?>[] types = new Class<?>[] { SpringApplication.class, String[].class };

// 创建SpringApplicationRunListeners实例,该实例为SpringApplicationRunListener的集合

  return new SpringApplicationRunListeners(logger,

        getSpringFactoriesInstances(SpringApplicationRunListener.class, types, this, args),

        this.applicationStartup);

}

SpringApplicationRunListeners实例化过程分析:

初始化log属性

初始化listeners属性

初始化applicationStartup属性

这里log属性和SpringApplication中的logger属性为同一个实例变量

这里的applicationStartup属性和SpringApplication中的属性为同一个变量

listeners属性通过SpringFactoriesLoader加载

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容