zoukankan      html  css  js  c++  java
  • 从 spring-cloud-alibaba-nacos-config 进入 nacos-client

    sc 的 bootstrap context 是 main application context 的 parent,需要在 main application context 中使用的 bean 可以在

    spring-cloud-alibaba-nacos-config/META-INF/spring.factories 文件中定义:

    org.springframework.cloud.bootstrap.BootstrapConfiguration=
    org.springframework.cloud.alibaba.nacos.NacosConfigBootstrapConfiguration
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=
    org.springframework.cloud.alibaba.nacos.NacosConfigAutoConfiguration,
    org.springframework.cloud.alibaba.nacos.endpoint.NacosConfigEndpointAutoConfiguration
    org.springframework.boot.diagnostics.FailureAnalyzer=
    org.springframework.cloud.alibaba.nacos.diagnostics.analyzer.NacosConnectionFailureAnalyzer

    BootstrapConfiguration 对应 sc 的 bootstrap context。

    EnableAutoConfiguration 是 spring boot 的自动配置注解。

    spring.factories 文件的解析在 SpringFactoriesLoader 类中。

    NacosConfigBootstrapConfiguration

    @Configuration // 创建 bean
    @ConditionalOnProperty(name = "spring.cloud.nacos.config.enabled", matchIfMissing = true)
    public class NacosConfigBootstrapConfiguration {
    
        @Bean // 创建 bean
        @ConditionalOnMissingBean
        public NacosConfigProperties nacosConfigProperties() {
            return new NacosConfigProperties();
        }
    
        @Bean
        public NacosPropertySourceLocator nacosPropertySourceLocator(
                NacosConfigProperties nacosConfigProperties) {
            return new NacosPropertySourceLocator(nacosConfigProperties);
        }
    
    }

    spring boot 实体类装载配置文件信息

    @ConfigurationProperties(NacosConfigProperties.PREFIX)
    public class NacosConfigProperties {
    
        public static final String PREFIX = "spring.cloud.nacos.config";
    
        private static final Logger log = LoggerFactory
                .getLogger(NacosConfigProperties.class);
    
        /**
         * nacos config server address
         */
        private String serverAddr;
    
    }
  • 相关阅读:
    HTTP协议基础
    MySQL必知必会总结(二)
    MySQL必知必会总结(一)
    微信小程序开发总结
    从零开始搭建物联网平台(8):邮箱通知服务
    使用CDN优化首页加载速度
    Django+Vue前后端分离项目的部署
    Docker命令
    Django中间件执行流程和CSRF验证
    golang 快速排序及二分查找
  • 原文地址:https://www.cnblogs.com/allenwas3/p/11354103.html
Copyright © 2011-2022 走看看