如果一个EJB是由CDI容器使用@Inject
注入的,因为CDI有作用域,这意味着这个EJB将具有作用域,它的生命周期将由CDI容器而不是EJB容器控制?
还是CDI容器只注入并且生命周期由EJB容器控制?
例如:我实现了一个SLSB,它的生命周期由EJB容器控制。这意味着EJB容器将控制bean的创建、池和破坏。
默认情况下,CDI具有依赖范围。如果我使用@Inject
注入这个SLSB,CDI将控制bean的生命周期,以便在每次创建和销毁父类时创建和销毁它?如果是这样的话,EJB就失去了并发特性(bean池)。
发布于 2015-03-26 15:01:35
来自bkail's answer on a similar question:
@Inject版本将尊重EJB的范围。例如,使用@EJB将SFSB注入servlet是没有意义的,因为每个请求只存在一个SFSB。使用@Inject将@SessionScoped SFSB注入servlet意味着您有一个CDI代理,它根据每个会话的需要创建一个新的SFSB。
https://stackoverflow.com/questions/29279485
复制相似问题