我将一个JSF 2.1应用程序迁移到CDI。为了能够使用@javax.faces.bean.ViewScoped
注释,我试图使用MyFaces CODI,如建议here。MyFaces CODI实例化bean两次
该应用程序似乎按预期工作,但我注意到通过日志记录,我的每个@Named
豆的构造函数在第一次访问时调用两次。但是,注解为@PostConstruct
的init()
方法只能执行一次。
当这些bean用于第二次或第n次时,它们的构造函数只会按照正常情况调用一次。
只要我从我的应用程序中删除MyFaces CODI罐子,就不会发生这种情况,所以我确信它是由它引起的。
这是一个正常的行为,如果是这样,为什么?它是否对性能有影响或可能导致任何问题?
我觉得这可能与代理创建有关,但它并不是100%清晰的,所以我会非常感谢一个解释。
我的配置:
- JSF 2.1
- 钻嘴鱼科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上测试过,结果相同
谢谢。
感谢您对本文的链接,我会非常感兴趣地阅读它。 – Virginie
接受此答案或更新您的问题的状态。 –
@Virgi不客气。 – rdcrng