在使用Nacos作为配置中心时,除了@NacosValue可以做到自动刷新外,nacos-spring-context:0.3.4版本是支持@Value获取Nacos配置中心的值,并动态刷新的,该功能是Spri依靠ngValueAnnotationBeanPostProcessor类来实现:
分析其源码可以看到,如果bean上有注解@NacosRefresh,则会自动刷新。
在实际使用时,发现bean上的注解是@Configuration则不会自动刷新,而使用@Component则可以做到自动刷新。
代码如下:
测试类:
这就和@Component与@Configuration的区别有关了,@Component注解的bean是原生bean,@Configuration是被cglib动态增加的bean。
Nacos属性值自动刷新 1.@NacosValue获取最新值引入jar包:
编写配置类:
编写测试类:
2.@Value获取最新值引入jar包:
引入配置:
编写测试类:
备注:
方式一@NacosValue获取最新值nacos配置信息需要写在配置类上
方式二@NacosValue获取不到值(如果需要使用该注解需要引入方式一的jar,但是不重启服务获取不到最新值),@Value获取最新值一定要加@RefreshScope注解,配置文件中配置refresh: true
以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。