Nacos热更新(动态获取配置)

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️、点赞👍👍、收藏⭐️⭐️,满足一下我的虚荣心💖🙏🙏🙏 。

在这一篇 Nacos作为配置中心-CSDN博客 

中提到使用@RefreshScope注解动态的获取配置中心的数据,这里详细补充记录一下。

目录

测试准备

动态获取配置

@value和@RefreshScope

@ConfigurationProperties(prefix = "")和@RefreshScope


测试准备

首先,在nocos中添加配置:

readTimeout: 5000 

然后,在测试方法中添加如下代码:

@Value("${readTimeout}")
private String readTimeout; 

@GetMapping(value = "/readTimeout")
public String testConfig() {
   return readTimeout;
}

测试

启动项目后浏览器访问如下地址:

http://localhost:18880/consumer/readTimeout

浏览器返回如下:

此时我们把nocos配置中的readTimeout值改为50000后再次访问上面的地址,发现浏览器返回的依然是5000。

动态获取配置

在nocos配置中修改后不重启项目立即生效的现象我们就可以叫他动态获取。想要实现动态获取配置,我们可以使用如下两种方式:

1、使用@value和@RefreshScope
2、@ConfigurationProperties(prefix = "")和@RefreshScope

@value和@RefreshScope

首先我们试下@value和@RefreshScope的方式,只要将上面测试方法的类上加上@RefreshScope注解即可,完整代码如下:

@RefreshScope
@RestController
@RequestMapping("/consumer") 
public class TestController {


    @Value("${readTimeout}")
    private String readTimeout;


    @GetMapping(value = "/readTimeout")
    public String testConfig() {
        return readTimeout;
    }


}
@ConfigurationProperties(prefix = "")和@RefreshScope

当要配置的属性较多的时候,使用上面的方式就有点麻烦,也可以使用@ConfigurationProperties注解,建立一个类来装数据,比如nocos中有如下数据:

user:
  age: 18
  sex: 男

我们可以使用@ConfigurationProperties建立一个类来接收配置中的数据,如下:

@Component
@ConfigurationProperties(prefix = "user")
@Data
public class NacosPropertiesConfig {
    private String sex;
    private String age;

}

然后测试类中添加如下方法进行测试:

@RefreshScope
@RestController
public class TestController {

    @Value("${readTimeout}")
    private String readTimeout;


    @Autowired
    private NacosPropertiesConfig propertiesConfig;



    @GetMapping(value = "/readTimeout")
    public String testConfig() {
        return readTimeout;
    }


    @GetMapping(value = "/user")
    @ResponseBody
    public NacosPropertiesConfig testConfig2() {
        return propertiesConfig;
    }

此时访问 http://localhost:18880/consumer/user    ,浏览器返回如下:

将年龄改为30后再次访问,结果如下:

如上使用两种方式实现了配置文件的动态获取。

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值