本文共 483 字,大约阅读时间需要 1 分钟。
修改了配置值后,系统能够自动刷新并更新为最新状态。SessionScope是从Session中获取实例的,而ThreadScope是从ThreadLocal中获取的。RefreshScope则是在内建缓存中获取实例。
@Scope注解用于实例化对象,而@RefreshScope则是一个特殊的@Scope注解,默认配置了ScopedProxyMode.TARGET_CLASS属性。这意味着在每次调用时,会创建一个代理对象,通过GenericScope的get方法获取实际的对象实例。
当属性发生变更时,可以调用ContextRefresher的refresh()方法。这会触发RefreshScope的refreshAll()方法,执行缓存清理操作。随后,系统会发送刷新事件通知,并调用GenericScope的true的清理方法destroy(),从而清理相关缓存。
在新对象被创建并存入缓存之前,系统会调用GenericScope的get方法,使用指定的objectFactory创建新的对象。这样,新对象因为Spring的装配机制,会自动获取最新的属性配置。
转载地址:http://eaqfk.baihongyu.com/