【问题标题】:JSF Managed Beans performanceJSF 托管 Bean 性能
【发布时间】:2011-07-10 14:03:54
【问题描述】:
我有一个包含许多表单的网页。一个用于登录,另一个用于创建文章,另一个用于提交评论。现在,这些表单中的每一个都由不同的支持 bean 支持,例如:loggingBean、newCommentBean 等。当生命周期执行时,即使用户只提交了“新评论”表单,它是否会创建每个这些 bean 的实例?
【问题讨论】:
标签:
java
jsf
managed-bean
【解决方案1】:
这取决于您如何定义托管 bean 的 scope。
EDIT 还有一个eager 属性@ManagedBean(eager = true),您可能会很想知道。
强制应用程序范围的 bean
被实例化并放置在
应用范围尽快
应用程序启动之前,任何
发出请求,eager 属性
托管 bean 的值应设置为
真的。
【解决方案2】:
这一切都取决于 bean 的范围。每个请求都会创建一次请求 bean,但您可能不应该担心创建 bean 的开销,它很小。您通常应该更关心 bean 停留时间过长(会话 bean 应该是请求 bean),这会不必要地耗尽内存。