【问题标题】:Performance Concern JSF - Managed Bean Injection Inside Managed Bean性能问题 JSF - 托管 Bean 内的托管 Bean 注入
【发布时间】:2015-03-11 07:02:16
【问题描述】:

我正在使用基于 JSF2.0 的现有应用程序,而且我们使用的是 Primefaces。我已经看到,人们已经在另一个托管 bean 中注入了托管 bean。我很期待知道,这是一个好习惯吗?性能缺点呢?我看到我们的应用程序在性能测试环境中表现得很慢。还有一点,在 ManagedBean 注解中,我们有一个“eager”的概念,这个属性有多大用处?

谢谢。

【问题讨论】:

  • 除了关于托管 bean 的术语 eager (反过来,它仅适用于应用程序范围的 JSF 托管 bean,因此不适用于 CDI bean)用于急切地初始化有问题的 bean ,一切都取决于您的项目要求,例如将 bean/其他服务注入另一个 bean。没有?
  • 如果我们有两个viewscoped beans,将B注入A,为什么B会被序列化两次?
  • 我看到我们的应用程序在性能测试环境中表现得很慢这可能有很多原因。由于您没有展示任何有关您项目的架构和设计的信息,因此我们很难提供具体的帮助。
  • 运行分析器以了解究竟是哪些部分导致了“非常慢”。

标签: jsf jsf-2


【解决方案1】:

AFAIR 如果启用序列化不是一个好习惯 - 如果您使用客户端状态或会话复制/集群,则需要这样做。

例如如果您在同一个视图(“A”和“B”)上有 2 个 viewscoped bean 并将“B”注入“A”。 “A”将被序列化 1 次,“B”将被序列化 2 次。

如果您使用 CDI,则不会出现此问题,因为只会注入代理而不是真实实例。

【讨论】:

  • 为什么B会被序列化两次?它也会对性能造成影响吗?
猜你喜欢
  • 1970-01-01
  • 2011-07-10
  • 2012-01-27
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2013-01-23
  • 2013-07-28
  • 2013-05-08
相关资源
最近更新 更多