连接到 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<?>
阶段,该阶段将通知您所有 AnnotatedType
s CDI 拾取。这可以使用 @WithAnnotations
进一步缩小到只有 select 带有给定注释的 AT。
在某些环境中,Weld 还允许与 Jandex 一起工作,您或许可以将其用作不同的工具。
我一直在寻找有关 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<?>
阶段,该阶段将通知您所有 AnnotatedType
s CDI 拾取。这可以使用 @WithAnnotations
进一步缩小到只有 select 带有给定注释的 AT。
在某些环境中,Weld 还允许与 Jandex 一起工作,您或许可以将其用作不同的工具。