首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我应该使用@EJB还是@Inject

我应该使用@EJB还是@Inject
EN

Stack Overflow用户
提问于 2011-11-15 22:52:41
回答 5查看 112.4K关注 0票数 157

我发现了这个问题:What is the difference between @Inject and @EJB,但我并没有变得更聪明。我以前没有做过Java EE,也没有依赖注入的经验,所以我不知道我应该使用什么?

@EJB是一种古老的注入方式吗?在使用新的@Inject框架的同时使用此注释时,注入是由EJB容器完成的吗?这就是区别吗?如果是这样的话,我应该使用@Inject而不是@EJB吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-11-15 23:08:41

@EJB只用于注入EJB,现在已经有很长一段时间了。@Inject可以注入任何托管bean,并且是新的CDI规范的一部分(从JavaEE6开始)。

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

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

安东尼奥·贡卡尔维斯的博客:

CDI Part I

CDI Part II

CDI Part III

JBoss焊接文档:

CDI and the Java EE ecosystem

StackOverflow:

Inject @EJB bean based on conditions

票数 188
EN

Stack Overflow用户

发布于 2011-11-15 22:57:52

@Inject可以注入任何bean,而@EJB只能注入EJB。您可以使用这两种方法中的任何一种来注入EJB,但我更喜欢到处使用@Inject

票数 35
EN

Stack Overflow用户

发布于 2017-08-08 14:51:03

在使用@EJB和@Inject时,了解会话Bean身份方面的差异可能也很有用。根据规范,以下代码将始终为true

@EJB Cart cart1;
@EJB Cart cart2;
… if (cart1.equals(cart2)) { // this test must return true ...}

使用@Inject而不是@EJB是不一样的。

另请参阅stateless session beans identity以了解更多信息

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8138232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档