什么是热更新?

3
这里是来自Spring Framework Core 1.6.1版本的一段代码片段:

请注意,在销毁之前不能保证停止通知的到来。在常规关闭期间,所有 Lifecycle beans 首先在传播一般的销毁回调之前接收到停止通知。但是,在上下文的生命周期内进行热刷新或中止刷新尝试时,仅调用销毁方法。

什么是热刷新?它与实时重载有关吗?

我认为这只是措辞上的小矛盾,他们本意是写 hot swapping - Turing85
@Turing85 我也是这么认为的,但是在Spring Framework Core中同一个单词重复出现了两次,你可以在1.15.2.标准和自定义事件中搜索它。 - user7780894
我知道,我查看了文档 =)。不过,我认为这只是一个小的不一致性。 - Turing85
1
热刷新是指重新加载您的ApplicationContext而无需重新启动进程,详情请参见https://dev59.com/fWAf5IYBdhLWcg3wXhyz。 - josejuan
1
@josejuan 正确,但只是部分正确。 - user7780894
显示剩余3条评论
1个回答

2

自问自答。

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

AbstractRefreshableWebApplicationContext:

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

它是 Web 应用程序上下文,其配置位置属性正在被替换而无需重新启动应用程序。


我猜我错了,抱歉。他们为什么会称之为“热”清爽呢? - Andrew Tobilko
1
因为 "configLocations" 被替换了,我猜。 - user11332642

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接