Nacos 被越来越多的项目使用,我们微服务中也开始使用 Nacos 来做配置。

使用 @Value 获取配置时不能实时刷新

在使用中,我们可以用 @Value 来获取 Nacos 中的配置,如下

@Value("${oss.customDomain}")
private String customDomain;

不过遇到一个问题,就是在 Nacos 中修改值后,控制台也有返回修改刷新,可是在应用中却没有生效,重启后才能获取到新值,

image-20211026143824982
image-20211026143824982

经过一番摸索,其实只要简单的加上 @RefreshScope 即可刷新。

image-20211026143638923
image-20211026143638923

静态变量 @Value 取值 null

在静态变量中使用 @Value 时,会取到 null,即直接加 @Value 的方法是无效的:

@Value("${zlx.baseUrl}")
public static String BASE_URL;

这时候需要类有 @Component 注解,再添加一个set 方法即可:

public static String BASE_URL;
@Value("${zlx.baseUrl}")
public void setZlxBaseUrl(String baseUrl) {
   BASE_URL = baseUrl;
}