java - 焊接中外部(第 3 方)bean 的解析

标签 java cdi jboss-weld jsr299

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

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

是通过将它们声明为 <alternatives> 来解决第 3 方 jar 中的 bean 的问题吗?在你的beans.xml

如果没有,如何使用没有beans.xml 的第三方库中的bean ?

除非有 beans.xml,否则将 jar 放在类路径中是行不通的在他们的 META-INF ,对于第 3 方 jar ,您无法做到这一点。 (参见 Gavin King's post on the subject)

最佳答案

为什么想的这么复杂?

简单地为那些第 3 方类制作一个 producerMethod。

假设您有一个第 3 方库,它会自动获取 PDF 文件并按传真发送它们,并且您喜欢使用类似

private @Inject PdfFaxService faxService;

在你的代码中,那么你可以简单地为它提供一个生产者方法。 PdfFaxService 是无状态工作的,所以我们可以安全地假设我们可以做到这一点@ApplicationScoped:

public @Produces @ApplicationScoped PdfFaxService createFaxService() {
  return new PdfFaxService(initparameters);
}

某处。

嗯。

关于java - 焊接中外部(第 3 方)bean 的解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2264758/

相关文章:

java - 如何为 Swift 语言创建 Java ANTLR 解析器?

java - 媒体播放器声音不重叠

java - 在嵌套 map 中输入值

jsf-2 - List<Integer> 收到 List<String>

hibernate - 在tomcat中使用生产者注入(inject)EntityManager

java - @Produce 方法的正确使用方法

java - JButton 的抽象错误和在接口(interface)类上找不到符号

java ee cdi : catch exception thrown by producer method

java - Kotlin CDI 拦截器未被调用

guice - 在 CDI(WELD) 中是否有一个等价物来构建定义(就像在 Guice 模块中所做的那样)然后创建一个注入(inject)器?