java - Quarkus - 扩展包括 3rd 方 ContainerRequestFilter
问题描述
如果我遵循这个,我可以添加一个 ContainerRequestFilter,它会被 Quarkus 拾取并按预期运行。但是,我正在编写一个扩展来利用另一个团队编写的 ContainerRequestFilter。我不确定如何让 Quarkus 使用这个过滤器。我尝试将其添加为 AdditionalBeanBuildItem
@BuildStep
public void producer(BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(3rdPartyFilter.class));
}
但这不起作用,过滤器不会在请求上运行。
解决方案
你可以看看其他扩展是如何做到这一点的,例如quarkus-smallrye-opentracing
它是如何做到的。
基本上,您只需要在runtime
应用程序的模块中添加 JAX-RS DynamicFeature。
@Provider
public class QuarkusSmallRyeTracingStandaloneVertxDynamicFeature implements DynamicFeature {
@Override
public void configure(ResourceInfo resourceInfo, FeatureContext context) {
context.register(MyFilter.class);
}
public static class MyFilter implements ContainerRequestFilter {
// whatever
}
}
推荐阅读
- python - 如何从不同的函数pyqt5调用线程
- r - 来自 svyglm 对象的边际效应与 R 中的子样本
- mxgraph - 如何在页面加载时在图形区域中插入页面分隔符(路径元素)
- makefile - GNU make:同一字符串中两个位置的文本替换?
- python - Python - 使用pyinstaller后,脚本不更新excel文件
- substrate - 如何在 ApiPromise 中注册一个自定义的托盘,以便我们可以用 polkadotjs 调用它?
- python - 如何确保元组列表中的最小欧几里得距离
- java - 在 android:onClick 属性的父或祖先上下文中找不到方法 pdf(View)
- html - 在有序列表中使用 flex 将输入字段拉伸到剩余空间
- c++ - 函数 convert(&m) 发生了什么?