参考地址:
https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
如何接入
- 首先,修改 pom.xml 文件,引入 Nacos Config Starter。
-
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
- 在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据
-
spring.application.name=nacos-config-example spring.cloud.nacos.config.server-addr=127.0.0.1:8848
-
完成上述两步后,应用会从 Nacos Config 中获取相应的配置,并添加在 Spring Environment 的 PropertySources 中。这里我们使用 @Value 注解来将对应的配置注入到 SampleController 的 userName 和 age 字段,并添加 @RefreshScope 打开动态刷新功能
@RefreshScope class SampleController { @Value("${user.name}") String userName; @Value("${user.age}") int age; }
做一个测试:
在controller中进行使用刚定义的配置项:
启动模块
问题需求:修改application.properties的配置项内容,需要重新打包、上传部署、浏览,如果部署多台主机,要分别上传。维护困难。
用配置中心解决:
进入nacos管理界面:
能够浏览,看到配置项的值
接下来:
再次浏览,希望看到配置项的值得变化。但是实际上没有发生变化
解决办法:进到controller里面
重启模块服务,再次浏览,可以发现变化。
总结一下:
* 1、如何使用Nacos作为配置中心统一管理配置
*
* 1)、引入依赖,
* <dependency>
* <groupId>com.alibaba.cloud</groupId>
* <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
* </dependency>
* 2)、创建一个bootstrap.properties。
* spring.application.name=gulimall-coupon
* spring.cloud.nacos.config.server-addr=127.0.0.1:8848
* 3)、需要给配置中心默认添加一个叫 数据集(Data Id)gulimall-coupon.properties。默认规则,应用名.properties
* 4)、给 应用名.properties 添加任何配置
* 5)、动态获取配置。
* @RefreshScope:动态获取并刷新配置
* @Value("${配置项的名}"):获取到配置。
* 如果配置中心和当前应用的配置文件中都配置了相同的项,优先使用配置中心的配置。