springboot 加载

1.springapplication 创建

1.1 读取 

META-INF/spring.factories
(1)ApplicationContextInitializer.class

(2)ApplicationListener.class

2 springapplication.run(args)

2.1 

SpringApplicationRunListeners listeners = getRunListeners(args);
listeners.starting();

2.2 

ConfigurableEnvironment environment -> StandardServletEnvironment {activeProfiles=[], defaultProfiles=[default], propertySources=[StubPropertySource {name='servletConfigInitParams'}, StubPropertySource {name='servletContextInitParams'}, PropertiesPropertySource {name='systemProperties'}, SystemEnvironmentPropertySource {name='systemEnvironment'}]}

2.2.1 

ConversionService conversionService -> ApplicationConversionService

 configurePropertySources

configureProfiles(environment, args);

2.2.2 prepareEnvironment

listeners.environmentPrepared(environment);
2.2.2.1 org.springframework.cloud.bootstrap.BootstrapApplicationListener

        2.2.2.1.1 

           springapplication.ConfigurableApplicationContext run(String... args)
                createApplicationContext()->AnnotationConfigApplicationContext.class
                        load(context, sources.toArray(new Object[0]))->

                                                        AnnotatedBeanDefinitionReader  

                                                        /org.springframework.cloud.bootstrap.BootstrapImportSelectorConfiguration

                                this.annotatedReader.register(source); 

2.3  创建

ConfigurableApplicationContext context = createApplicationContext();

if (!registry.containsBeanDefinition(CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME)) {
   RootBeanDefinition def = new RootBeanDefinition(ConfigurationClassPostProcessor.class);
   def.setSource(source);
   beanDefs.add(registerPostProcessor(registry, def, CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME));
}

添加内部ConfigurationClassPostProcessor。

AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,

registerOrEscalateApcAsRequired
AnnotationConfigApplicationContext
org.springframework.cloud.bootstrap.BootstrapImportSelectorConfiguration
com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration
com.alibaba.cloud.nacos.NacosConfigBootstrapConfiguration
PropertySourceBootstrapConfiguration

class org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
CommonAnnotationBeanPostProcessor
org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor
configurationPropertiesBeans

nacosConfigProperties

 org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext

ConfigurationProperties

DubboApplicationContextInitializer

ImportBeanDefinitionRegistrar

ConfigurationPropertiesBindingPostProcessor  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值