配置热更新
有很多的业务相关参数,将来可能会根据实际情况临时调整。例如购物车业务,购物车数量有一个上限,默认是10,对应代码如下: 现在这里购物车是写死的固定值,我们应该将其配置在配置文件中,方便后期修改。 但现在的问题是,即便写在配置文件中,修改了配置还是需要重新打包、重启服务才能生效。能不能不用重启,直接生效呢? 这就要用到Nacos的配置热更新能力了,分为两步:- 在Nacos中添加配置
- 在微服务读取配置
添加配置到Nacos
首先,我们在nacos中添加一个配置文件,将购物车的上限数量添加到配置中: 注意文件的dataId格式:[服务名]-[spring.active.profile].[后缀名]
文件名称由三部分组成:
服务名
:我们是购物车服务,所以是cart-service
spring.active.profile
:就是spring boot中的spring.active.profile
,可以省略,则所有profile共享该配置后缀名
:例如yaml
cart-service.yaml
这个名称,则不管是dev还是local环境都可以共享该配置。
配置内容如下:
hm:
cart:
maxAmount: 1 # 购物车商品数量上限
提交配置,在控制台能看到新添加的配置:
配置热更新
配置热更新有两种方案: 1、在@Value注解所在的类上面新增注解:@RefreshScope 2、配置属性类,在类上新增注解:@ConfigurationProperties 接着,我们在微服务中读取配置,实现配置热更新。 在cart-service
中新建一个属性读取类:
代码如下:
package com.hmall.cart.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "hm.cart")
public class CartProperties {
private Integer maxAmount;
}
接着,在业务中使用该属性加载类:
测试,向购物车中添加多个商品:
我们在nacos控制台,将购物车上限配置为5:
无需重启,再次测试购物车功能:
加入成功!
无需重启服务,配置热更新就生效了!
标签:中心,spring,配置,cart,购物车,添加,更新
From: https://www.cnblogs.com/linzepro/p/18237634