nacos配置参数,重启nacos后 @RefreshScope 不生效
出现问题原因,在内部类加了@RefreshScope,nacos每次发布,项目没有发版本,获取到的是老的配置信息。
测试,在Controller加了@RefreshScope,是可以获取当前最新配置。
具体原因好像是在外侧是同一个容器,在内部是另一个容器,另一个容器没办法获取外侧容器的数据
处理方案
新建一个Refresh类
@Data
@Component
@ConfigurationProperties(prefix = "nacos配置文件前缀,如house.abc")
@RefreshScope
public class Refresh {
private String stringList;
//nacos 配置字符串 如
house:
abc:
stringList: aa,bb,cc,dd,
private Map<String, String> mapVal;// nacos 配置map
house:
abc:
mapVal:
aa: aa的配置内容val
cc: cc的配置内容val
dd: dd的配置内容val
}
// 在内部类注入
@Autowired
private Refresh refresh;
//使用
Map<String, String> map = assetRefreshProperties.getmapVal()//通过key获取数据
String s = assetRefreshProperties.getStringList()//