【问题标题】:How is the lifecycle of an ELB or a CDI bean when injected into a singleton?注入单例时,ELB 或 CDI bean 的生命周期如何?
【发布时间】:2016-02-29 10:41:13
【问题描述】:

我想将一些会话 bean 注入到单例 EJB 中,但不确定在这种情况下它们的生命周期是什么。我找到的所有信息都提到了客户端请求(如在远程应用程序或 servlet 类型调用中),但我无法找到究竟是什么构成了这些“客户端”、“请求”和“会话”。

当 SFSB 或 SLSB 被注入到单例 EJB 中时,它的生命周期是什么?

考虑到,据我所知,单例的一个实例始终处于活动状态,它实例化的会话 bean 是否也始终处于活动状态?

对会话 bean 的“客户端请求”是作为单例实例变量的注入还是对其方法之一的调用?

将 SLSB 作为局部变量注入方法内部(如果 SLSB 的功能仅在该方法内部使用)是否有意义(有可能吗?会有所不同吗?),而不是注入它作为单例类的实例变量?

【问题讨论】:

    标签: jakarta-ee singleton cdi lifecycle ejb-3.1


    【解决方案1】:

    SFSB 或 SLSB 注入时的生命周期是什么 变成单例 EJB?

    您的单例 bean 可能对应于每个变量的单个 SFSB 或 SLSB 实例,但它像往常一样取决于容器。您只有单身人士的代理。

    考虑到,据我所知,单例的一个实例是 始终处于活动状态,它实例化的会话 bean 是否仍然存在 也一直活跃?

    如果不使用 SFSB 可能会超时。同时,SLSB 一旦被调用,只要容器允许,就可以留在容器中。

    对会话 bean 的“客户端请求”是否会作为它们的注入 单例的实例变量或对其方法之一的调用?

    客户端请求可能是指在注入 SLSB/SFSB 期间任务责任的转移。客户端请求也可能指对 SLSB/SFSB 方法之一的调用。

    这是否有意义(有可能吗?会有所作为吗?) 在方法中注入一个 SLSB 作为局部变量(如果 SLSB 的功能仅在该方法内部使用),而不是 将其作为单例类的实例变量注入?

    您不能将 SLSB 作为局部变量注入方法中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 2023-03-10
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      相关资源
      最近更新 更多