spring @RefreshScope 刷新原理图

spring @RefreshScope 刷新原理图

在 spring cloud 中常常会使用到动态配置刷新,如:

@RestController
@RefreshScope
public class ConfigController {

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

}

spring 对于 加了 @RefreshScope 注解的类,使用了一个 scope map 去维护

过程

  • 将 加了@RefreshScope 注解 的类加入到 scope map (假定)中
  • 当有 RefreshEvent 的时候, 类 RefreshScope 会 更新上下文环境,并清除 scope map 中的bean , 使用更新过的属性重新构建一个 bean, 放入到 scope map中
  • 当重新 getBean 的时候,又到scope map 中获取, 这样取出来的Bean 就是更新之后的

在这里插入图片描述