SpringCloud Alibaba 启动过程
Springboot 2.2.12版本
获取初始化类,实例化SpringApplication
this.setInitializers(this.getSpringFactoriesInstances(ApplicationContextInitializer.class));
1、获取项目中 META-INF/spring.factories 的启动时的配置类
如果项目中添加了OpfenFeign jar包,那么这个时候会找到META-INF/spring.factories 下的参数放进缓存中,并添加org.springframework.context.ApplicationContextInitializer参数到LinkedHashMap 中返回
private <T> Collection<T> getSpringFactoriesInstances(Class<T> type, Class<?>[] parameterTypes, Object... args) {
ClassLoader classLoader = this.getClassLoader();
Set<String> names = new LinkedHashSet(SpringFactoriesLoader.loadFactoryNames(type, classLoader));**
*******************
return instances;
}
2、实例化ApplicationContextInitializer 类
OpfenFeign 没有配置该参数
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration,
org.springframework.cloud.openfeign.FeignAutoConfiguration,
org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration,
org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration
private <T> Collection<T> getSpringFactoriesInstances(Class<T> type, Class<?>[] parameterTypes, Object... args) {
ClassLoader classLoader = this.getClassLoader();
*******************************************
List<T> instances = this.createSpringFactoriesInstances(type, parameterTypes,