由CDI注入时的EJB生命周期

时间:2015-03-26 13:18:03

标签: java-ee ejb cdi

如果CDI容器使用@Inject注入EJB,因为该CDI具有范围,这意味着此EJB将具有范围,其生命周期将由CDI容器而不是EJB容器控制?

或者CDI容器只注入,生命周期由EJB容器控制?

例如: 我实现了一个SLSB,它的生命周期由EJB容器控制。这意味着EJB容器将控制bean的创建,汇集和销毁。

默认情况下,CDI bean具有Dependent范围。如果我使用@Inject注入此SLSB,CDI将控制bean的生命周期,以便每次创建和销毁父类时都会创建和销毁它?如果确实如此,则EJB会丢失并发特征(bean池)。

1 个答案:

答案 0 :(得分:1)

来自bkail's answer on a similar question:

  

@Inject版本将尊重EJB的范围。例如,使用@EJB将SFSB注入到servlet中是没有意义的,因为每个请求只存在一个SFSB。使用@Inject将@SessionScoped SFSB注入servlet意味着你有一个CDI代理,可以根据需要为每个会话创建一个新的SFSB。