注入EJB使用哪种方法?

时间:2017-05-10 16:52:32

标签: java java-ee ejb ejb-3.1

我已阅读过很多在线和SO的帖子,但我仍然不清楚用于注入EJB的注释。

任何人都可以指导何时使用哪个注释来注入EJB(以及可能的优点和缺点):

  

1)@EJB
  2)@Resource
  3)@Inject

这可能是一个基本问题,我确实在寻找答案,但我对此并不清楚。

1 个答案:

答案 0 :(得分:4)

我从未见过任何可以使用@Resource注入EJB的地方。 可能在某些服务器上工作,但它不太可移植。

@EJB vs @Inject的问题更为复杂。

CDI和@Inject已添加到Java EE 6规范中。可以将@Inject EJB转换为CDI bean,但不能放在太多其他(如果有的话)的地方。

Java EE 7规范将此基本统一到可以在大多数(如果不是全部)地方交替使用@Inject@EJB的地方。实质上,必须更新所有“子”规范,例如EJB规范本身,servlet规范,JAX-WS,JAX-RS等,以支持使用@Inject以及{{1} }。但是,如果您需要指定@EJB注释上可用的任何属性,那么这些属性在@Inject上不可用。

因此,如果您在符合Java EE 7的环境中运行并且您不需要任何@EJB属性,请随时随地使用@EJB,否则请使用@Inject