当前位置: 首页 > 知识库问答 >
问题:

ejbbean、cdibean和注入

施旭东
2023-03-14

看完这些,,

  • 在哪里使用EJB3.1和CDI

下面的事情我还不明白,如果我错了,请纠正我。

  1. bean在同一个包中的所有类。xml是CDIBean,除了注释为session/message/singleton的类之外

非常感谢。:)

共有1个答案

柯星华
2023-03-14

我会作出以下更正:

>

  • 与beans.xml相同的存档中的所有类都是CDI bean,包括EJB。

    使用@EJB(在另一个EJB或任何其他EE管理的对象(包括cdibean)中)只能注入EJB,而cdibean和ejbbean都可以使用@inject(在ejbbean或cdibean中)注入。

    使用@Inject注入的被注释为@Statless(例如)的类仍然是一个EJB bean,如果在bean部署存档中,它也可能是一个CDI bean;无论如何,它仍然由EJB容器管理,具有池化和事务性。

    值得注意的是,CDI管理的bean是可以@Inject插入到另一个CDI bean中的任何东西,并且它本身可以使用@Inject,这对于所有EJB都是正确的,@EJB可以用于将EJB插入到任何其他EE管理的bean(EJB、servlet、CDI管理的bean等)。

  •  类似资料:
    • 我配置了一个bean,它有一些初始化逻辑。我已经使用@Application ationScoped注释注释了这个bean。但不知何故,cdi并没有选择这个豆子。 beans.xml内容: Bean文件: 读取配置文件的代码: 我使用:cdiL:进行依赖项注入,apachedeltaspike:读取配置文件。野蝇群:服务器

    • 是否可以在使用关键字创建的类中获取CDIBean的实例?我们目前正在对一个旧的应用程序进行一些增强,每次我们在应用程序中对CDI单例bean进行编程查找时,都会得到一个ContextNotActiveException。 获取参考的代码: BeanManager支持。JAVA

    • 我有一个用@Example注释的bean。这个bean实现了一些接口。我想通过使用它的类名以编程方式注入这个bean,但我不想指定它的限定符 我得到了一个不满意的依赖项错误,因为它正在搜索带有@Any的bean,而这个bean有@Any和@Example,由于某种原因,它不满足 这可以在CDI中实现吗?

    • 我有点困惑,我们将CDIBean称为我们使用注释注入它们的bean,还是我们在它们内部使用注入的bean?

    • 我有这个问题,我不确定这是否是“预期”行为,但我的问题是: 我有一个Http筛选器: UserInfo和ActivationInfo都是@SessionScope,如下所示: 和 当我尝试访问调用过滤器的页面时,我在控制台上看到以下内容: 如果我转到不同的浏览器并输入“坏”校验码,用户信息/激活信息永远不会重新注入。IE,与不同的会话,我没有看到一个新的UserInfo/ActivationInf

    • 我目前正在将Ed Burns的JSF 2.0教科书中的虚拟培训师示例应用程序从JSF托管bean转换为CDI。到目前为止,我遇到的大多数问题都与作用域和忘记正确注入有关,但现在我正在努力克服最近的一个障碍,即从RequestMap中提取CDIBean(实际上是一个实体类)。从目前为止我所能确定的情况来看,似乎可以通过使用样板文件非常简单地提取请求范围的托管Bean。映射实现提供的get(Strin