初始化
1. SpringApplicationRunListener属于应用程序启动层面的监听器,在springboot启动时候,调用run方法进行反射加载初始化。此时上下文还没有加载,如果通过@Compnant是起不了作用的。根据下图看下
- springApplication.run()方法进入到getRunListeners(args)。
- getRunListeners(args)方法进入到getSpringFactoriesInstances(…)方法(此处参数省略),继续走到SpringFactoriesLoader.loadFactoryNames(…)这个等会下面介绍从何加载的,继续走到createSpringFactoriesInstances(…)这个方法进行创建。
- 现在来看下SpringFactoriesLoader.loadFactoryNames(…)是在FACTORIES_RESOURCE_LOCATION=META-INF/spring.factories文件读出来加载的
2. 通过spring上下文加载初始化的