使用CDI后期发现豆类

时间:2012-07-10 13:20:21

标签: java rest plugins cdi

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

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

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

我看不到实现这一目标的方法。这甚至是在这种环境中应该尝试的东西吗?

1 个答案:

答案 0 :(得分:1)

  

我看不到实现这一目标的方法。

您实际上有两个选择:

  1. 使用CDI extension mechanism处理beans / bean-archives 在启动时并以您希望的方式修改它们。看看文档中提供的示例,这应该为您提供一个开始。
  2. 执行时间处理BeanManager。看看this类似问题。