java - 使用 CDI 发现 bean 类的较晚

标签 java rest plugins cdi

我正在使用 CDI 创建一个 Java Web 应用程序。 My War 包含各种作为 bean 源的 Jar 文件(包括 META-INF/beans.xml 文件)。当在 JBoss 等 Java EE 容器中运行时,我的 bean 会被自动发现(我目前使用的是 JBoss AS 7.1.1)。这一切运行良好。

我希望能够扩展 Web 应用程序,理想情况下是允许它从存储在可配置位置(即系统属性指定的位置)的 Jar 文件中加载类。这也很好,因为我可以使用类加载器来解析类和资源。我缺少的是让 CDI 扫描这些外部 Jar 文件并包含它们的 beans 的能力。

这将允许我的应用程序托管插件功能,包括新的 REST 资源。我不介意是否必须重新启动应用程序才能获取这些外部 Jar 文件中包含的类和资源。

我看不出有什么办法可以实现这一点。在这种环境下还应该尝试这种做法吗?

最佳答案

I can see no way of achieving this.

您实际上有两个选择:

  1. 使用CDI extension mechanism使用 bean/bean-archives 在启动时并按照您想要的方式修改它们。查看文档中提供的示例,这应该会给您一个开始。
  2. BeanManager 合作在执行时。看看this类似的问题。

关于java - 使用 CDI 发现 bean 类的较晚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11414232/

相关文章:

java - 需要将 Web 应用程序与所有主要 ERP 和 CRM 系统集成

java - 使用 Logback 时出错

java - 如何模拟JIT优化来查看优化后的字节码?

java - 响应消息 : org. apache.jorphan.util.JMeterException:调用 bsh 方法时出错:eval null

java - Tomcat 7.0 + Chrome 不显示 JSON

ruby-on-rails - "Create"路由路径助手

arrays - 在不同的数据源(插件数组)上烘烤蛋糕控制台

java - 使用 swagger UI 记录包装的 REST 响应

plugins - onContentBeforeSave 和 onContentAfterSave 未触发

c# - 关联方法