從 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;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM