所述的生命周期@RequestScoped
和@SessionScopedBean
管理豆由Servlet容器自身管理,因为它们是基本上作为一个属性存储HttpRequest
和HttpSession
分别。 如何JSF管理的生命周期@ViewScopedBean
? 我知道它被创建视图时创建和可用,直到有一回发到不同的看法。 但是,我发现后,我们从该视图中移动立即收集,是不是垃圾。
Answer 1:
它就会被破坏时,
与非回传
null
时被执行的结果,或者,在会话(逻辑)视图的数目已经超过与该特定视图是在LRU链中的第一个(在钻嘴鱼科,由是configureable
com.sun.faces.numberOfViewsInSession
和com.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?