【发布时间】:2013-06-08 05:30:39
【问题描述】:
我正在将 JSF 2.1 应用程序迁移到 CDI。为了能够使用@javax.faces.bean.ViewScoped 注释,我正在尝试使用MyFaces CODI,正如here 所建议的那样。
该应用程序似乎按预期工作,但我注意到通过记录我的每个 @Named bean 的构造函数在我第一次访问它时被调用了两次。然而,他们用@PostConstruct 注释的init() 方法只执行一次。
当这些 bean 第二次或第 n 次使用时,它们的构造函数只会按正常预期调用一次。
从我的应用程序中删除 MyFaces CODI jar 后不会立即发生,所以我确定它是由它引起的。
这是正常行为吗?如果是,为什么?它对性能有影响还是会导致任何问题?
我觉得这可能与创建代理有关,但我的想法并不是 100% 清楚,因此我非常感谢您的解释。
我的配置:
- JSF 2.1
- Mojarra 2.1.6
- MyFaces CODI 1.0.5(使用完整包或核心 + JSF 2.0+ 测试)
- (不相关:Primefaces 3.5 和 Omnifaces 1.5)
- Glassfish 3.1.2,也在 Jboss EAP 6.0 上进行了测试,结果相同
谢谢。
【问题讨论】: