NACOS动态配置

前置条件:基于前文“NACOS服务注册与发现搭建”项目中创建的项目开发NACOS的动态配置功能。

方式一:启动配置管理方式获取配置

1、项目引入POM包


<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>

 

 

2、yml配置NACOS系统信息


  • 新增bootstrap.yml文件,配置信息写在该文件里。(问题:如放在application.yml会导致项目启动报找不到配置属性错误,原因:application.yml与bootstrap.yml加载顺序优先级问题。)

    bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等

    application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

    加载顺序:bootstrap.yml > application.yml > application-dev(prod).yml > ...

  • 在bootstrap.yml中新增application.name和nacos的config信息。
    spring:
      application:
        name: order-service-demo
    
      cloud:
        nacos:
          config:
            server-addr: localhost:8848
            file-extension: properties  # 此处为配置使用的后缀名
            group: DEFAULT_GROUP

 

3、NACOS系统新增动态配置参数


登录NOCAS系统在配置列表页面,点击新增配置输入配置信息,本文选择的是properties配置文件类型。

DataID格式:${prefix}-${spring.profiles.active}.${file-extension}

  prefix:默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

  spring.profiles.active:即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

  file-exetension:为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

 

4、代码配置


在使用配置的controller中新增 @RefreshScope 注解,以及在注入属性上新增 @Value("${Key名称}") 注解。访问网站储呈现

 

 

方式二:JAVA SDK方式获取配置

1、项目引入POM包


<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>2.0.0-ALPHA.2</version>
</dependency>

 

2、NACOS系统新增动态配置参数


 登录NOCAS系统在配置列表页面,点击新增配置输入配置信息,本文选择的是json配置文件类型。

DataID格式:${prefix}-${spring.profiles.active}.${file-extension}

  prefix:默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

  spring.profiles.active:即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

  file-exetension:为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

 

3、代码段


获取NACOS配置服务,根据Data ID获取配置。

 

获取到的配置信息,接口返回呈现。

 

 

 

posted on 2021-01-22 10:36  barryzhou  阅读(5994)  评论(0编辑  收藏  举报

导航