问题标签 [cdi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4659 浏览

jakarta-ee - 使用 Java EE 6 将 EJB 注入到域对象中

如何使用 Java EE 6 将 EJB 注入到域对象(JPA 实体)中?

0 投票
2 回答
2187 浏览

java - 焊接中外部(第 3 方)bean 的分辨率

我知道它仍然不是很流行,因为该规范是在几个月前发布的。

我还没有“安装”焊接,我只是在阅读,通过这个问题,我想确保我已经正确理解了这一点:

是否通过将 3rd-party jar 中的 bean 声明为<alternatives>您的beans.xml?

如果没有,如何使用 3rd 方库中没有的 bean beans.xml

beans.xml除非在他们的 jar 中,否则将 jar 放在类路径上是行不通的META-INF,对于 3rd 方 jar,您无法做到这一点。(请参阅Gavin King 关于该主题的帖子

0 投票
5 回答
11339 浏览

jakarta-ee - Java EE 6 CDI 实现之间的差异

我查看了 JBoss 的 JSR-299 上下文和依赖注入的焊接参考实现,我想知道其他 CDI 实现之间的比较。具体来说,我了解 Weld、Resin CanDI(由 Caucho 编写)和 Apache OpenWebBeans。

0 投票
3 回答
3367 浏览

jakarta-ee - 如何为一个类实例化多个 CDI/Weld bean?

在 Spring 中,可以通过在 xml conf 中定义相应的 bean 来实例化任何类。还可以为具有不同参数的同一类实例化多个 bean .....

CDI 中是否也有这样的功能,即是否可以使用不同的初始化参数创建同一类的不同实例?

是否也可以在不更改类的情况下创建 bean....我的意思是不添加注释?

添加

让我举个例子。

如何实例化同一类的两个实例并用不同的字段值初始化它们?

0 投票
4 回答
13707 浏览

glassfish - 如何将会话 Bean 注入消息驱动 Bean?

我对 Java EE 相当陌生,所以这可能很愚蠢。请多多包涵:D

我想将无状态会话 bean 注入消息驱动 bean。基本上,MDB 获得一条 JMS 消息,然后使用会话 bean 来执行工作。会话 bean 保存业务逻辑。

这是我的会话 Bean:

匹配界面:

这是我的MDB:

到目前为止,还不是火箭科学,对吧?

不幸的是,在将其部署到 glassfish v3 并向相应的 JMS 队列发送消息时,我收到 glassfish 无法找到 TestBean EJB 的错误:

所以我的问题是:

  • 这是将会话 bean 注入另一个 bean(特别是消息驱动 bean)的正确方法吗?
  • 为什么命名查找失败?
0 投票
2 回答
10304 浏览

java - 如何使用 JPA 实现测试 DAO?

我来自 Spring 阵营,我不想使用 Spring,并且正在迁移到 JavaEE6,但是我在测试 DAO + JPA 时遇到了问题,这是我的简化示例:

这是一个很基础的DAO,因为我是Spring出来的,相信DAO还是有它的价值的,所以决定加一个DAO层。

这是一个 JPA 实现的 DAO,我希望 EE 容器或测试容器能够注入 EntityManager(就像 Spring 一样)。

这是我的测试文件。

好的,问题来了:因为JUnit不理解@javax.inject.Inject,PersonDao将无法注入,测试将失败。

如何找到能够将 EntityManager 注入 PersonDaoImpl 并将 PersonDaoImpl 注入到 TestCase 的 PersonDao 的测试框架?

我试过 unitils.org ,但找不到这样的样本,它只是直接将 EntityManagerFactory 注入 TestCast ,而不是我想要的......

0 投票
4 回答
4824 浏览

java - 没有应用程序服务器的 Java EE

从 EJB 3 开始,我们有了可嵌入的 EJB 容器,JPA 实现可以在没有应用服务器的情况下使用,还有 Weld 用于上下文和依赖注入等等。由于在许多系统上只有 Tomcat 可用,我想知道是否可以在没有应用程序服务器的情况下使用 Java EE,但可以使用像 Tomcat 这样的 Servlet 容器。

我需要做什么来设置 Java 环境?你看到什么缺点?

0 投票
3 回答
1052 浏览

java - 在 Weld (JSR-299 RI) 中使用 @Inject 进行依赖注入。如何找到对应的@Produces?

我已经使用 JSR-299 参考实现“焊接”,目的是在独立应用程序中使用它,并且我查看了文档,并惊叹于它的魔力。

我的问题是如何找到要被@Inject 的给定对象的生产者?

java编译器为类加载器很容易找到的注释生成提示,或者必须遍历完整的类路径以加载所有类以查看它们的作用,这对我来说听起来效率很低,或者它是一种完全不同的方法。

诀窍是什么?

0 投票
6 回答
23127 浏览

java - Google Guice 与 JSR-299 CDI / Weld

Weld 是 JSR-299 上下文和依赖注入参考实现,它认为自己是 Spring 和 Guice 的一种继承者。

CDI 受到许多现有 Java 框架的影响,包括 Seam、Guice 和 Spring。然而,CDI 有它自己非常独特的特点:比 Seam 更类型安全,比 Spring 更有状态且更少以 XML 为中心,比 Guice 更有 Web 和企业应用程序能力。但是,如果没有上述框架的启发以及 JSR-299 专家组 (EG) 的大量协作和辛勤工作,就不可能有这些。

http://docs.jboss.org/weld/reference/latest/en-US/html/1.html

与 Guice 相比,是什么让 Weld 更适合企业应用?与Guice相比有什么优点或缺点吗?与 Weld 拦截器相比,您如何看待 Guice AOP?性能呢?

我的选择

最后我决定使用 Guice,因为我喜欢干净的编程模型,它默认除了 @Inject 之外几乎没有注释。在 Guice 中使用外部库比使用 CDI 容易得多。Guice 的 AOP 也非常简单。

0 投票
1 回答
1412 浏览

jsf - 可以用`抑制对话传播吗`?

我正在使用新的 JSF2<h:link>标记,并使用 get 请求嵌套<f:param>链接到页面。但是,对话 id (cid) 通过链接的查询参数传播到新页面。

可以用 抑制对话传播<h:link>吗?IE。网址中没有 cid=# ......?