使用SpringCloud Alibaba - Nacos 作为配置中心
Nacos Config 案例 文档:
我使用的Spring Boot 版本为2.6.4,高于2.4.0 版本所以需要使用import 的方式导入配置。
使用之前的配置不生效,踩坑后查了很多资料,最后发现官方文档上已经写明了。
1、首先,修改 pom.xml 文件,引入 Nacos Config Starter
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2、在配置文件中配置配置中心的相关配置
application-dev.yml
spring: application: name: yaomall-coupon cloud: nacos: discovery: server-addr: 127.0.0.1:8848 config: server-addr: 127.0.0.1:8848 file-extension: yml #配置的格式 yml #设置命名空间 这个是新建的dev命名空间(不写就是public) # namespace: 5ff7df55-0fb2-4911-b4ca-dedcdf249d10 #读取dev(UUID)命名空间下的group分组 # group: *_GROUP_01 group: DEV_GROUP config: import: # 导入nacos配置中心的配置文件 - optional:nacos:yaomall-coupon.yml
3、在nacos 中添加配置文件
添加一个名称为yaomall-coupon.yml 添加到DEV_GROUP组中
添加好后点击发布
4、动态获取配置 — 需要添加一个注解才能生效
需要加@RefreshScopp,然后配合 @Value 一起使用。
@RefreshScope @RestController @RequestMapping("coupon/coupon") public class CouponController { @Autowired private CouponService couponService; @Value("${coupon.user.name}") private String name; @Value("${coupon.user.age}") private String age; @RequestMapping("/test") public R test(){ return R.ok().put("name", name).put("age", age); } }
注:如果配置中心和当前应用的配置文件中都配置了相同的配置项,优先使用配置中心的配置。
5、演示结果:
A 当前应用的配置文件和配置中心配置文件中有相同配置项。
B 编辑配置文件,编辑完成后点击发布。
在确认发布过程中,有一个对比的过程,这点就很人性化。
C 在确认发布后,应用会立马会有配置刷新的日志打印。
D 请求测试类,获取更改的配置
下一篇:
本地搭建nacos 无敌简单