动态刷新配置文件的两种实现方式。(Nacos)

直奔主题:所谓动态刷新配置文件即修改配置文件的一些值,可以直接读取,不需要重启项目

项目搭配nacos来实现此需求

nacos中加入测试的配置项
动态刷新配置文件的两种实现方式。(Nacos)

第一种方式:

使用注解 @RefreshScope来使此类成为“支持动态配置的类”,给属性添加@Getter@Value("${test1}")这个大家都懂。
动态刷新配置文件的两种实现方式。(Nacos)
使用:

动态刷新配置文件的两种实现方式。(Nacos)
下面的接口用作测试:
项目初次启动:结果如下:地址栏马赛克部分为,server.servlet.context-path
动态刷新配置文件的两种实现方式。(Nacos)
nacos中修改配置:并且发布配置
动态刷新配置文件的两种实现方式。(Nacos)
刷新页面:此时我们的项目并没有重启哦
动态刷新配置文件的两种实现方式。(Nacos)

第二种方式:

把我们的Test类做如下修改
动态刷新配置文件的两种实现方式。(Nacos)
重启项目,如果你的代码支持热加载也可以不重启哦。
并且在nacos中添加配置项。
动态刷新配置文件的两种实现方式。(Nacos)
刷新页面
动态刷新配置文件的两种实现方式。(Nacos)
再次修改nacos中的配置文件
动态刷新配置文件的两种实现方式。(Nacos)
刷新页面
动态刷新配置文件的两种实现方式。(Nacos)

总结

这两种的就是使用上的区别,至于效率方面没做验证

如果你的动态配置项较少,可以使用Environment来搞。
如果你的配置项很多,封装成类,然后,使用@RefreshScope来使这个类称为配置类,在用的地方直接注入使用。