如何以及何时是@ViewScoped豆在JSF破坏?(How and when is a @View

2019-07-21 03:35发布

所述的生命周期@RequestScoped@SessionScopedBean 管理豆由Servlet容器自身管理,因为它们是基本上作为一个属性存储HttpRequestHttpSession分别。 如何JSF管理的生命周期@ViewScopedBean ? 我知道它被创建视图时创建和可用,直到有一回发到不同的看法。 但是,我发现后,我们从该视图中移动立即收集,是不是垃圾。

Answer 1:

它就会被破坏时,

  • 与非回传null时被执行的结果,

  • 或者,在会话(逻辑)视图的数目已经超过与该特定视图是在LRU链中的第一个(在钻嘴鱼科,由是configureable com.sun.faces.numberOfViewsInSessioncom.sun.faces.numberOfLogicalViews上下文参数中,每个为15的默认值),

  • 或者,在会话actieve视图范围的数量已经超过了(在钻嘴鱼科,这是25的硬编码限制),另见JSF 2.2内存消耗:为什么钻嘴鱼科在内存中保存最近25次的ViewScoped豆?

  • 或者,会话已过期。

它会在页面被卸载,只需点击某个链接GET到另一个页面,或刷新页面,或者关闭浏览器标签/窗口的结果,因此不能被破坏。 只要直到abovelisted条件之一满足这个bean将生活。 卸载过程中破坏也无妨,可以考虑使用OmniFaces @ViewScoped代替。



文章来源: How and when is a @ViewScoped bean destroyed in JSF?