让@RefreshScope注解来帮助我们实现动态刷新

在这里插入图片描述

前言

  • 在实际开发当中我们常常会看到有些类上会加一个注解:@RefreshScope,有没有对应的小伙伴去思考过这个东西,这个注解有什么作用?为什么要加?下面我们就来看看这个 RefreshScope 注解是如果使用及底层执行原理。

举例

  • 如果要使用该注解则直接在对应业务类型加上即可
    在这里插入图片描述

作用

  1. @RefreshScope 注解是 Spring Cloud 中的一个注解,用来实现 Bean 中属性的动态刷新
  2. 用于把 Spring 中的 Bean 对象放入 refresh scope,带有这个注解的 Bean 可以在运行时刷新,任何使用它们的组件都将在下一个方法调用中获得一个新的完全初始化并注入所有依赖项的实例
  3. 经过 @RefreshScope 注解修饰的 Bean,将被 RefreshScope 进行代理,当配置变更时可以在不重启 jvm 的前提下刷新 Bean中相关的属性值和 Bean 的热更新
  4. 当我们在 Nacos 中修改如下对应的配置信息时,不需要重新启动服务就会自动刷新最新值
    在这里插入图片描述

参考文章

  1. https://zhuanlan.zhihu.com/p/655285089
  2. https://blog.csdn.net/JokerLJG/article/details/120254643

总结

在这里插入图片描述

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
没有@RefreshScope注解,可以通过实现一个定时任务来实现动态刷新。具体实现步骤如下: 1. 定义一个配置类,用于读取配置文件中的属性值。 2. 定义一个定时任务类,用于定时读取配置文件中的属性值,并将其更新到对应的Bean中。 3. 在需要动态刷新的Bean中,通过@Autowired注入配置类,并在需要动态刷新的属性上添加@Value注解,将属性值注入到Bean中。 4. 在定时任务类中,通过反射机制获取需要动态刷新的Bean,并将更新后的属性值设置到Bean中。 具体实现代码如下: ```java @Configuration public class Config { @Value("${config.property}") private String configProperty; // getter and setter } @Component public class DynamicRefreshTask { @Autowired private Config config; @Scheduled(fixedRate = 5000) // 每隔5秒执行一次 public void refresh() throws Exception { // 读取配置文件中的属性值 String configProperty = readConfigProperty(); // 获取需要动态刷新的Bean Object bean = getRefreshBean(); // 设置更新后的属性值到Bean中 setPropertyValue(bean, "configProperty", configProperty); } private String readConfigProperty() { // 读取配置文件中的属性值 // ... } private Object getRefreshBean() { // 获取需要动态刷新的Bean // ... } private void setPropertyValue(Object bean, String propertyName, Object propertyValue) throws Exception { // 设置更新后的属性值到Bean中 // ... } } @Component public class MyBean { @Value("${config.property}") private String configProperty; // getter and setter } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值