为了账号安全,请及时绑定邮箱和手机立即绑定

同一会话中的多个 Sessionscoped Beans 实例

同一会话中的多个 Sessionscoped Beans 实例

侃侃尔雅 2021-11-11 17:41:01
如果在同一个会话中我实例化了多个 SessionScoped Bean 或 EJB(第一次通过容器注入,第二次通过“new”创建)会发生什么?它会抛出错误吗?如果不是,在注射过程中将使用它们中的哪些?AppllicationScoped 和 RequestScoped 也一样?!PS 类没有任何注释,但给它们一个明确的名称。
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

要拥有真正托管的 bean,您需要让 CDI 处理生命周期,包括创建。也有例外,但我们现在不讨论。

对于您的情况,通过创建的对象new将根本不是托管 bean,CDI 不会知道它(除非它是某种生产者方法等的结果)。你应该弄清楚为什么要创建它而不是仅仅注入现有的?

AppllicationScoped 和 RequestScoped 也一样?!

对于普通作用域 bean 的每个注入点,CDI 将查看底层“bean 存储”并查看您想要的 bean 是否已经创建并存储在那里。如果是这样,它只会向您返回那个(或者,好吧,它的代理)。如果没有,它将创建一个新的并将其存储在那里以供将来参考。

所以简短的回答是,你不会有两个由 CDI 创建的同一个普通作用域 bean 的实例。


查看完整回答
反对 回复 2021-11-11
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信