【问题标题】:What is hot refresh?什么是热刷新?
【发布时间】:2019-09-07 13:30:29
【问题描述】:

这是来自 1.6.1 的 Spring Framework Core 的 sn-p:生命周期回调

另外,请注意,停止通知不能保证在销毁之前发出。在定期关闭时,所有Lifecycle bean 首先会在传播一般销毁回调之前收到停止通知。但是,在上下文生命周期内的热刷新或中止刷新尝试时,只会调用 destroy 方法。

什么是热刷新?跟实时重载有关系吗?

【问题讨论】:

  • 我认为这是措辞上的轻微不一致,他们打算写hot swapping
  • @Turing85 虽然我是这么想的,但是同一个词在Spring Framework Core中重复了两次,你可以在1.15.2中搜索。标准和自定义事件
  • 我知道,我检查了文档 =)。不过,我会认为这是一个轻微的不一致。
  • 热刷新是关于重新加载你的ApplicationContext而不重启进程见stackoverflow.com/questions/24720330/…
  • @josejuan 正确,但部分正确。

标签: java spring


【解决方案1】:

自己回答问题。

ContextRefreshedEventApplicationContext 初始化或刷新时发布(例如,通过在 ConfigurableApplicationContext 接口上使用 refresh() 方法)。在这里,“初始化”意味着所有 bean 都已加载,后处理器 bean 被检测并激活,单例已预先实例化,ApplicationContext 对象已准备好使用。只要上下文没有关闭,就可以多次触发刷新,前提是选择的ApplicationContext实际上支持这种“热”刷新。比如XmlWebApplicationContext支持热刷新,GenericApplicationContext不支持。

AbstractRefreshableWebApplicationContext:

提供“configLocations”属性,在 Web 应用程序启动时通过 ConfigurableWebApplicationContext 接口填充。

这是在不重新启动应用程序的情况下替换其配置位置属性的 Web 应用程序上下文。

【讨论】:

  • 我想我错了,对不起。为什么他们会称之为“热”清爽?
  • 因为我猜"configLocations" 正在被替换。
猜你喜欢
  • 1970-01-01
  • 2020-08-03
  • 1970-01-01
  • 2016-12-23
  • 2013-02-09
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多