0
点赞
收藏
分享

微信扫一扫

spring cloud alibaba - Nacos 学习(config)

西曲风 2021-09-21 阅读 65

一、添加配置

<!-- Nacos 动态更新配置 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

二、在Nacos Server里定义dataid

   在这里我要提醒大家官网对 dataid的定义

     dataid = ${prefix}-${spring.profile.active}.${file-extension}
*   `prefix` 默认为 `spring.application.name` 的值,也可以通过配置项 `spring.cloud.nacos.config.prefix`来配置。
*   `spring.profile.active` 即为当前环境对应的 profile,也就是项目配置文件中的 spring.profiles.active=dev。 **注意:当 `spring.profile.active` 为空时,对应的连接符 `-` 也将不存在,dataId 的拼接格式变成 `${prefix}.${file-extension}`**
*   `file-exetension` 为配置内容的数据格式,可以通过配置项 `spring.cloud.nacos.config.file-extension` 来配置。目前只支持 `properties` 和 `yaml` 类型。

三、配置文件

   一定要注意的是 Nacos 的在项目中 config的配置一定要写在 bootstrap.properties,注意是 bootstrap.properties ,不是 bootstrap.yml。Spring Boot 配置文件的加载顺序,依次为 bootstrap.properties -> bootstrap.yml ->application.properties -> application.yml,其中 bootstrap.properties 配置为最高优先级。

配置文件内容
server.port = 8080

spring.profiles.active=dev

# Nacos Server 的地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# 这里的对应 Nacos Server 中的 Data ID 的前缀
spring.application.name=order-server
# 这里的对应 Nacos Server  中的指定的配置规则格式和 Data ID 的后缀
spring.cloud.nacos.config.file-extension=yaml
# 关闭动态刷新,默认是开启
#spring.cloud.nacos.config.refresh.enabled=false

# 服务发现
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# 值范围:1到100。值越大,重量越大。
spring.cloud.nacos.discovery.weight=1
# 集群名称
spring.cloud.nacos.discovery.cluster-name=order

四、测试运行

DemoOrderServerApplication 测试方式
    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(DemoOrderServerApplication.class, args);
        String userName = applicationContext.getEnvironment().getProperty("aa");
        System.out.println(userName);
    }

动态监听方式

   官方就是加了个 while(true) 哈哈哈哈哈,其实意思就是告诉我们,你在Nacos Server里更改的值,是可以被程序发现的。

注解方式运行

   从以上的结果可以看到:
   1、我们并没有在配置文件中配置 aa 这个属性,但是程序正确运行,且读到结果为1
   2、我们通过更改Nacos Server的值,发现的确实现了动态更新。

可支持profile粒度的配置

   从以上测试结果我们可以看出,Nacos 有默认配置一说,也就是不管你没有没有 profile 都会默认加载你的 dataid 为如下:

${spring.application.name}.${file-extension}
${spring.profiles.active} 当通过配置文件来指定时必须放在 bootstrap.properties 文件中。

五、命名空间 namespace

   命名空间的使用建议和业务有关,比如是order,那么我们就在order的空间里面存放order-dev环境,order-test环境。

六、关于 Group 的配置

   对于组的认识,我觉得就是给配置分类型,比如说环境是一组,数据是一组等。

七、支持可扩展的Data Id配置 及 优先级

   基于对上面的理解以后,看这里其实看官方demo就知道是什么意思了,所以这里我就不在做测试说明了。 留下官方地址就行

八、完全关闭配置

  通过设置 spring.cloud.nacos.config.enabled = false 来完全关闭 Spring Cloud Nacos Config

举报

相关推荐

0 条评论