我应该使用@EJB还是@Inject

2022-08-31 07:15:07

我发现了这个问题:@Inject和@EJB有什么区别,但我没有变得更聪明。我以前没有做过Java EE,也没有依赖注入的经验,所以我不明白我应该使用什么?

是一种旧的注射方式吗?在使用新的 CDI 框架时使用此注释时,EJB 容器是否完成了注入?这是区别吗,我应该使用而不是在这种情况下?@EJB@Inject@Inject@EJB


答案 1

仅用于注入 EJB,并且现在已有相当长的一段时间了。 可以注入任何受管 Bean,并且是新 CDI 规范的一部分(从 Java EE 6 开始)。@EJB@Inject

在简单的情况下,您可以简单地更改为 。在更高级的情况下(例如,当您严重依赖 的属性,如 ,或 )中,为了使用,您需要定义一个字段或方法。@EJB@Inject@EJBbeanNamelookupbeanInterface@Inject@Producer

这些资源可能有助于了解它们之间的差异以及如何充分利用它们:@EJB@Produces

Antonio Goncalves的博客:
CDI 第一
部分 CDI 第二
部分 CDI 第三部分

JBoss Weld 文档:
CDI 和 Java EE 生态系统

堆栈溢出:
根据条件注入@EJB豆


答案 2

@Inject可以注入任何豆类,而只能注入EJB。您可以使用任何一个来注入EJB,但我更喜欢在任何地方。@EJB@Inject


推荐