【发布时间】:2020-10-05 11:54:36
【问题描述】:
我正在尝试编写一个库(jar 文件),我希望它能够无缝嵌入到 Micronaut 堆栈中。该库包含一个带有 @Filter 注释的类,但是当包含在另一个应用程序中时,我很难让它工作。
基本上这个类看起来或多或少是这样的:
@Filter("/**")
public class MyFilter implements HttpServerFilter {
@Override
public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
// do some stuff
return chain.proceed(request);
}
}
当我将这个类直接添加到我的代码库(因此不通过库导入)时,过滤器按预期工作并且请求被拦截。但是,当我将这个类编译成一个 jar 文件并将其作为依赖项包含时,过滤器注释似乎没有被扫描并且过滤器没有执行。
这是我将它添加到我的 build.gradle 的方式:
dependencies {
annotationProcessor "io.micronaut:micronaut-inject-java"
compile files('libs/custom-lib.jar') //my jar with MyFilter.class
compile "io.micronaut:micronaut-inject"
}
谁能告诉我我做错了什么?谢谢!!
【问题讨论】:
-
您的
custom-lib.jar编译时是否启用了适当的注释处理器? -
谢谢杰夫!这让我走上了解决自己问题的正确道路(见下文)。