【发布时间】:2012-06-08 03:06:36
【问题描述】:
我在网上找不到灵魂或任何参考。问题来了
我有一个非常简单的网络项目
- index.xhtml
- MyBean.java
- MyEJB.java
这可以正常工作,但 glassfish 日志显示了这一点
信息:创建 MyBean 信息:创建 MyBean 信息:创建 MyEJB 信息:创建 MyBean 信息:创建 MyEJB 信息:创建 MyEJB
单个请求。
这意味着 MyBean 在请求中被创建了 3 次,而 MyEJB 被创建了 3 次
如果这是正常行为,或者它是 glassfish 上的错误,或者我在这里做错了什么,我会徘徊,因为如果在每个请求上创建和销毁这么多对象,seriuos 应用程序就会出现问题。
如果我换成这样更经典的 aproche
输出不一样
我创建了 1 个 ejb,然后请求的其余部分由该实例处理 并且 MyBean 为每个请求创建一次。
请帮助我,也许我错过了 cdi 规范。
谢谢
【问题讨论】:
-
好吧抱歉,首先它没有创建 3 次 bean,它是每个请求一个,我在浏览器上按 f5,我通过添加 @Named 来解决 EJB 创建问题。但我在我读过的任何 cdi 教程中都没有看到这个要求,所以我很困惑
-
了解您的第二个代码示例没有什么“经典”。第一个使用 CDI 进行注入,第二个使用 JSF 和 EJB 进行注入,这是两种截然不同的模型。 @Model 是 RequestScoped 和 Named 的 CDI 版本的快捷方式。所以是的,您的模型对象将被创建多次。
标签: java jsf glassfish ejb cdi