Spring Cloud Alibaba 服务配置 - Nacos Config 客户端的使用

POM

此处我们以之前创建的 服务提供者 项目为例

在 pom.xml 中增加 org.springframework.cloud:spring-cloud-starter-alibaba-nacos-config 依赖

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  4. </dependency>

完整的 pom.xml 如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>cn.dandelioncloud</groupId>
  7. <artifactId>hello-spring-cloud-alibaba-dependencies</artifactId>
  8. <version>1.0.0-SNAPSHOT</version>
  9. <relativePath>../hello-spring-cloud-alibaba-dependencies/pom.xml</relativePath>
  10. </parent>
  11. <artifactId>hello-spring-cloud-alibaba-nacos-provider</artifactId>
  12. <packaging>jar</packaging>
  13. <name>hello-spring-cloud-alibaba-nacos-provider</name>
  14. <url>http://www.dandelioncloud.cn</url>
  15. <inceptionYear>2018-Now</inceptionYear>
  16. <dependencies>
  17. <!-- Spring Boot Begin -->
  18. <dependency>
  19. <groupId>org.springframework.boot</groupId>
  20. <artifactId>spring-boot-starter-web</artifactId>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-actuator</artifactId>
  25. </dependency>
  26. <dependency>
  27. <groupId>org.springframework.boot</groupId>
  28. <artifactId>spring-boot-starter-test</artifactId>
  29. <scope>test</scope>
  30. </dependency>
  31. <!-- Spring Boot End -->
  32. <!-- Spring Cloud Begin -->
  33. <dependency>
  34. <groupId>org.springframework.cloud</groupId>
  35. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  36. </dependency>
  37. <dependency>
  38. <groupId>org.springframework.cloud</groupId>
  39. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  40. </dependency>
  41. <!-- Spring Cloud End -->
  42. </dependencies>
  43. <build>
  44. <plugins>
  45. <plugin>
  46. <groupId>org.springframework.boot</groupId>
  47. <artifactId>spring-boot-maven-plugin</artifactId>
  48. <configuration>
  49. <mainClass>cn.dandelioncloud.hello.spring.cloud.alibaba.nacos.provider.NacosProviderApplication</mainClass>
  50. </configuration>
  51. </plugin>
  52. </plugins>
  53. </build>
  54. </project>

bootstrap.properties

创建名为 bootstrap.properties 的配置文件并删除之前创建的 application.yml 配置文件,由于已经在服务端配置,此处不再赘述

  1. # 这里的应用名对应 Nacos Config 中的 Data ID,实际应用名称以配置中心的配置为准
  2. spring.application.name=nacos-provider-config
  3. # 指定查找名为 nacos-provider-config.yaml 的配置文件
  4. spring.cloud.nacos.config.file-extension=yaml
  5. # Nacos Server 的地址
  6. spring.cloud.nacos.config.server-addr=127.0.0.1:8848

注意:在之前的 Spring Cloud Netflix 课程中有提到过 Spring Boot 配置文件的加载顺序,依次为 bootstrap.properties -> bootstrap.yml -> application.properties -> application.yml ,其中 bootstrap.properties 配置为最高优先级

启动应用程序

启动应用后我们可以通过日志看到,已经成功加载到了配置文件

配置的动态更新

Nacos Config 也支持配置的动态更新,操作流程如下:

  • 修改服务端配置,增加一个 user.name 的属性

  • 修改 Controller ,增加一个请求方法,测试配置更新效果
  1. // 注入配置文件上下文
  2. @Autowired
  3. private ConfigurableApplicationContext applicationContext;
  4. // 从上下文中读取配置
  5. @GetMapping(value = "/hi")
  6. public String sayHi() {
  7. return "Hello " + applicationContext.getEnvironment().getProperty("user.name");
  8. }
  • 通过浏览器访问该接口,浏览器显示
  1. Hello Lusifer
  • 修改服务端配置

此时观察控制台日志,你会发现我们已经成功刷新了配置

  • 刷新浏览器,浏览器显示
  1. Hello LusiferLee

注意:你可以使用 spring.cloud.nacos.config.refresh.enabled=false 来关闭动态刷新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值