gpt4 book ai didi

ejb - 为什么@Inject 不能工作而@EJB 在 JavaEE 7 中工作?

转载 作者:行者123 更新时间:2023-12-05 04:16:52 25 4
gpt4 key购买 nike

我正在浏览 JavaEE7-samplesgithub 中 repo 。我发现作者在这个code snippet中提到了以下内容:

// Cannot be injected using @Inject
@EJB Cart bean;

作者明确提到 @Inject 将不起作用。但我想知道这背后的原因是什么?

我已经阅读了以下关于 @EJB@Inject 之间区别的文章。但这对我没有帮助。

http://www.adam-bien.com/roller/abien/entry/inject_vs_ejb

What is the difference between @Inject and @EJB

Should I use @EJB or @Inject

最佳答案

如果 bean 有 Local 接口(interface),两者都可以工作。但是,要使 @Inject 起作用,您必须启用 CDI(在 WEB-INF 文件夹中创建 beans.xml 文件)。

如果 bean 具有Remote 接口(interface),则需要生产者类使用以下代码声明资源:

public class RemoteProducer {
@Produces @EJB
HelloRemote helloBean;
}

有关更多详细信息,请参阅 JSR-299 CDI specification 中的第 3.5 节.
因此,为了使用简单,我建议坚持使用 @EJB 作为 EJB。

关于ejb - 为什么@Inject 不能工作而@EJB 在 JavaEE 7 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com