Nacos Config 源码分析 一(如何从Nacos服务器加载配置到本地)

通过Nacos控制台统一配置环境数据,本地项目启动的时候从Nacos远程服务器加载所需要的配置存储到本地。

有两种方式获取

// 1.通过Environment获取配置的key
ConfigurableApplicationContext context = SpringApplication.run(Application.class,args);
String  s1 = context.getEnvironment().getProperty("keyXXXX");

// 2.在JavaBean中通过@Value注解获取指定的key
@Value("${keyXXX}")
String s1;

实际上第二种方式还是Spring的自动装配通过Environment获取指定的key注入到属性中去

实际上第二种方式还是Spring的自动装配通过Environment获取指定的key注入到属性中去。

那么最终问题就是

SpringBoot如何从Nacos远程服务器中查询相关配置加载到本地的Environment?

实际上是通过PropertySourceBootstrapConfiguration来完成从远程读取配置信息的。

PropertySourceBootstrapConfiguration是一个启动配置类,该类中有个initialize方法会调用

PropertySourceLocator.locate(environment)来获取远程配置信息
package org.springframework.cloud.bootstrap.config;

@Configuration
@EnableConfigurationProperties({PropertySourceBootstrapProperties.class})
public class PropertySourceBootstrapConfiguration implements ApplicationContextInitializer<ConfigurableApplicationContext>, Ordered {  

// 这个方法initialize 是实现了ApplicationContextInitializer接口
public void initialize(ConfigurableApplicationContext applicationContext) {
        CompositePropertySource composite = new CompositePropertySource("bootstrapProperties");
        AnnotationAwareOrderComparator.sort(this.propertySourceLocators);
        boolean empty = true;
        ConfigurableEnvironment environment = applicationContext.getEnvironment();
        Iterator var5 = this.propertySourceLocators.iterator();
        // 循环调用locator.locate
        while(var5.hasNext()) {
            PropertySourceLocator locator = (PropertySourceLocator)var5.next();
            Propert
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nacos配置中心控制台的源码分析可以帮助我们深入理解其实现细节和工作原理。以下是一个大致的源码分析过程: 1. 入口类分析:首先,我们需要找到Nacos配置中心控制台的入口类。该类通常是一个Spring Boot应用的启动类,负责初始化和启动整个应用。我们可以查找包含main方法的类,或者在启动脚本中找到应用的入口点。 2. 依赖分析:接下来,我们需要分析应用所依赖的第三方库和框架。查看应用的pom.xml文件或者build.gradle文件,可以获取到所依赖的各个库和对应版本。这些依赖通常包括Spring框架、Nacos客户端等。 3. 配置加载与解析:Nacos配置中心控制台需要加载和解析配置,包括数据库配置Nacos服务地址配置等。我们可以查找相关的配置文件或者代码片段,了解配置加载和解析过程。 4. 控制器与路由:控制台通常提供了一些Web接口供前端调用。我们可以查找控制器类,分析其中的方法和注解,了解各个接口的功能和路由规则。 5. 页面模板与前端交互:配置中心控制台通常包含一些页面模板和与前端的交互逻辑。我们可以查找相关的HTML、CSS和JavaScript文件,分析页面的结构和交互逻辑。 6. 调用Nacos API:控制台需要与Nacos服务器进行通信,调用Nacos的API获取和修改配置信息。我们可以查找相关的API调用,了解控制台是如何与Nacos服务器进行通信的。 通过以上分析,我们可以逐步了解Nacos配置中心控制台的实现细节和工作原理。需要注意的是,具体的源码分析过程会因项目结构和代码风格而有所不同。以上只是一个大致的指导,具体分析还需根据实际情况来进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值