在可注入bean 查找的情况下,CDI 的搜索范围是什么?

What is the search scope of CDI in case of injectable bean lookup?

我有一个多模块 Maven 项目(一个 Java 带有 ear、persistence、web、ejb、api、bl 和其他模块的 EE 应用程序),我想在其中使用 Weld CDI。

当我尝试注入一个 bean 时,Weld 会在哪里搜索可注入的 bean? Weld 是否会在所有模块中搜索,其中 beans.xml 被放置到 WEB-INF 或 META-INF 而不管它们的依赖性(或依赖性在某种程度上很重要?),或者 Weld 是否能够从其他部署中注入一个 bean ?找了一个文档,里面描述了bean lookup的机制和边界,但是还没找到。

您所描述的是整个 EE 规范的一部分,而不是 CDI 规范的一部分。但是,是的,一般来说,您的 EAR 的内容将作为不同的应用程序被发现(根据 EE 规范)。这意味着您可能无法跨 JAR 访问单个 bean。强烈建议使用 WAR 部署 CDI。