我已阅读过很多在线和SO的帖子,但我仍然不清楚用于注入EJB的注释。
任何人都可以指导何时使用哪个注释来注入EJB(以及可能的优点和缺点):
1)@EJB
2)@Resource
3)@Inject
这可能是一个基本问题,我确实在寻找答案,但我对此并不清楚。
答案 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