Java 阿奎利安与CDI

Java 阿奎利安与CDI,java,dependency-injection,cdi,jboss-arquillian,Java,Dependency Injection,Cdi,Jboss Arquillian,我正在阅读Arquillian参考指南,它写得非常好,但是在关于设置依赖注入的章节中,我找不到您实际指定bean/绑定的地方 大多数Arquillian CDI代码示例显示了Java的@Inject注释的使用。所以我只是想知道,我在哪里定义这些bean/DI映射/绑定,以及如何配置Arquillian来使用它们 在SpringDI中,指定一个bean描述符,如Spring config.xml。在Guice中,您实现一个模块,并定义其配置(绑定器)方法。使用javax.inject.inject

我正在阅读Arquillian参考指南,它写得非常好,但是在关于设置依赖注入的章节中,我找不到您实际指定bean/绑定的地方

大多数Arquillian CDI代码示例显示了Java的
@Inject
注释的使用。所以我只是想知道,我在哪里定义这些bean/DI映射/绑定,以及如何配置Arquillian来使用它们


在SpringDI中,指定一个bean描述符,如
Spring config.xml
。在Guice中,您实现一个
模块
,并定义其
配置(绑定器)
方法。使用
javax.inject.inject
时,这在Arquillian land中是什么样子的?
提前感谢。

简短的回答是-不需要在CDI中定义bean映射,因为CDI只与注释一起工作。您可以在配置文件中添加额外信息,但这通常不是必需的

长答案最好取自CDI。

我认为您需要使用CDI机制

备选方案是其实现特定于特定客户机模块或部署场景的bean


谢谢@jan groth(+1)-那么如果我的Arquillian集成测试有一个
private@Inject-Fruit
字段,并且我希望
Fruit
接口在容器内注入一个
Apple
实例,那么我如何配置该绑定呢?
private@Inject-Fruit
如果有一个Fruit实现,
private@Inject@Apple-Fruit
如果还有更多。但是你应该仔细阅读参考的介绍,这里要解释的太多了……这不是备选方案的工作原理。使用xml来管理这样一件常见的事情将是非常糟糕的。正确答案是@jan grothOk,那么我们需要替代品做什么呢?:)实际上,在使用Arquillian进行集成测试的上下文中,正如OP在对@jan的回答的评论中提到的,我认为这确实是指定bean的替代实现的最简单的方法