为了账号安全,请及时绑定邮箱和手机立即绑定

我应该使用@EJB还是@Inject

我应该使用@EJB还是@Inject

白猪掌柜的 2019-12-09 09:44:26
我发现了这个问题:@Inject和@EJB有什么区别,但是我没有变得更明智。我之前没有做过Java EE,也没有依赖注入的经验,所以我不知道应该使用什么?@EJB是旧的注入方式吗?在使用@Inject时使用此批注时,EJB容器是否通过新的CDI框架进行注入?有区别吗?如果是这种情况,我应该使用@Inject而不是@EJB吗?
查看完整描述

3 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

@EJB用于注入EJB的仅适用于现在相当一段时间。@Inject可以注入任何托管bean,并且是新CDI规范的一部分(自Java EE 6起)。

在简单的情况下,您只需更改@EJB为即可@Inject。在更先进的情况下(例如,当您在很大程度上依赖@EJB的属性,如beanNamelookupbeanInterface)不是为了使用@Inject,你需要定义一个@Producer字段或方法。


查看完整回答
反对 回复 2019-12-09
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

我从切换到@Inject@EJB是因为@EJB允许循环注射而@Inject对其进行呕吐。

详细信息:我需要@PostConstruct调用一个@Asynchronous方法,但是它将同步进行。进行异步调用的唯一方法是让原始调用另一个bean的方法,然后让它回调原始bean的方法。为此,每个bean需要引用另一个-因此是循环的。@Inject因这项工作而失败,但是@EJB工作了。


查看完整回答
反对 回复 2019-12-09
  • 3 回答
  • 0 关注
  • 501 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信