SpringCloud Alibaba 启动

本文详细介绍了SpringCloud Alibaba的启动过程,从获取初始化类并实例化SpringApplication开始,探讨了启动监听类、初始化环境变量,特别是Spring的启动步骤,包括refreshBeanFactory等关键环节。内容涉及Spring Boot 2.2.12版本,以及OpfenFeign对启动配置的影响。
摘要由CSDN通过智能技术生成

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,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值