仅使用jar中的某些类进行CDI注入

时间:2018-06-05 13:06:06

标签: java cdi

我想将有用的CDI组件从项目移动到单独的JAR,并在其他项目中重用它们。

是否有办法让使用项目来控制JAR中哪些组件(例如生产者)在其容器中可用?

我正在搜索类似beans.xml的反转。类似于导入描述符。

我尝试过的事情:

  • 限定词:在我的情况下它们不是很方便
  • 没有CDI注释的JAR中的类(例如@Produces)和使用项目中带注释的空子类

还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

@maress好主意!

我需要做的一些细节:

    lib中的
  • JAR
    • beans.xml:设置bean-discovery-mode="annotated"
    • 使用@Alternative 一个@...Scoped
    • 注释所有“公开”组件
    • 使用@...Scoped注释包含生产者方法的类,并使用@Alternative@Produces
    • 注释生产者方法
    • 生成的类不需要使用@Alternative
    • 进行注释
  • 在app JAR / WAR中
    • beans.xml:将lib JAR中所有必需的组件和生产者列为<alternative>