连接到 WELD-SE 类路径扫描器

Hooking into WELD-SE classpath scanner

我一直在寻找有关 WELD-SE 的类路径扫描器 API 的文档,但一直找不到。我试图本着 Servlet、WebSocket 和 JAX-RS APIs 的精神发现带有自定义注释的 POJO。有什么方法可以用 WELD 做到这一点吗?

我意识到已经有一些库可以进行类路径扫描,例如 Scannotation、FastClasspathScanner、Corn-CPS 等,但我正在努力保持这个项目的精简,并且不介意与 WELD 紧密集成。

Weld 没有这样的 API。为此,Weld 使用的扫描仪不是 "general-enough"。它是特定于 CDI 的,因为它专注于发现 bean 档案。

如果您正在寻找的 POJO 实际上是 CDI bean,您可以简单地编写一个 CDI 扩展并观察 ProcessAnnotatedType<?> 阶段,该阶段将通知您所有 AnnotatedTypes CDI 拾取。这可以使用 @WithAnnotations 进一步缩小到只有 select 带有给定注释的 AT。

在某些环境中,Weld 还允许与 Jandex 一起工作,您或许可以将其用作不同的工具。