美文网首页
SpringCloud学习-Nacos配置管理

SpringCloud学习-Nacos配置管理

作者: 得鹿梦为鱼 | 来源:发表于2020-07-23 23:00 被阅读0次

    前面了解了Nacos作为服务注册中心,现在了解下,Nacos作为配置管理中心

    以前更改配置后,都需要手动重启工程才行,现在只需要搭上 Nacos ,你就可以在Nacos 上保存后,自动更新工程的配置项了

    搭建工程(基于上次服务注册的工程)

    pom.xml

    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter</artifactId>
            </dependency>
    
            <!--nacos依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>0.9.0.RELEASE</version>
            </dependency>
            <!--nacos 配置中心-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
                <version>0.9.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
    

    bootstrap.yml

    网上找的解释词:
    创建配置文件名为bootstrap.yml,一定是bootstrap.xxx
    原因:
    Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。springboot中配置文件的加载是存在优先级顺序的
    bootstrap优先级高于application

    spring:
      cloud:
        nacos:
          config:
            server-addr: 127.0.0.1:8848
            file-extension: yaml
            prefix: nacos-config
      profiles:
        active:
    

    application.yml

    server:
      port: 8860
    
    spring:
      application:
        name: nacos-config
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848
        
    nacos:
      cofing:
        name : nacosconfig
        function: study
    

    创建Controller

    需要@RefreshScope进行标记,表示 当前类下的配置支持动态更新

    
    @RestController
    @RefreshScope
    public class ConfigController {
    
        @Value("${nacos.cofing.name}")
        private String name;
    
        @Value("${nacos.cofing.function}")
        private String book;
    
        @GetMapping("/name")
        public String getName() {
    
            return name;
        }
    
        @GetMapping("/function")
        public String getFunction() {
    
            return book;
        }
    }
    
    

    在Nacos上进行配置

    新建配置

    Data ID的规则:

    ${prefix}-${spring.profile.active}.${file-extension}
    
    -- `prefix` 默认为 `spring.application.name` 的值,也可以通过配置项 `spring.cloud.nacos.config.prefix`来配置
    -- `spring.profile.active` 即为当前环境对应的 profile,详情可以参考 [Spring Boot文档](`https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-profiles`)。 **注意:当 `spring.profile.active` 为空时,对应的连接符 `-` 也将不存在,dataId 的拼接格式变成 `${prefix}.${file-extension}`
    -- `file-exetension` 为配置内容的数据格式,可以通过配置项 `spring.cloud.nacos.config.file-extension` 来配置。目前只支持 `properties` 和 `yaml` 类型
    
    

    我这里命名为: nacos-config.yaml

    bootstrap.yml dataIdPrefix

    这里可以解释 Data ID的规则里 prefix 的 释义

    构造dataId

    dataId是由 dataIdPrefix + "." + fileExtension 构造而成

    通过dataId从Nacos上获取配置服务

    通过跟踪代码,我们可以发现
    Nacos 是通过 dataId 也就是 dataIdPrefix + "." + fileExtension来获取的Nacos上的配置信息

    编写Nacos上的配置信息

    Nacos上的配置信息

    编写好后点发布就ok了

    启动工程

    访问:http://localhost:8860/function
    发现已经是Nacos上的配置信息了

    相关文章

      网友评论

          本文标题:SpringCloud学习-Nacos配置管理

          本文链接:https://www.haomeiwen.com/subject/jjuclktx.html