我希望能够做这样的事情:
@GET
@Path("test")
public Response someMethod(@Context MyCustomContext myCustomContext) {
...
}
我发现这篇旧的堆栈溢出帖子在这里描述了执行此操作的不同方法:在 JAX-RS 中使用 @Context、@Provider 和 ContextResolver。我实现了最佳答案(与实现无关)并让它工作,但它并没有完全符合我的要求。相反,它看起来是这样的:
@GET
@Path("test")
public Response someMethod(@Context Providers providers) {
ContextResolver<MyCustomContext> p = providers.getContextResolver(MyCustomContext.class, MediaType.WILDCARD_TYPE);
MyCustomContext myCustomContext = p.getContext(null);
...
}
那篇文章还有其他一些解决方案,但它们依赖于实现。我注意到在 quarkus 文档中有一个关于自定义上下文的部分可以在这里找到:https ://quarkus.io/guides/cdi-reference#synthetic-beans ,但这是特定于扩展的。有人对如何在 quarkus 项目中执行此操作有想法吗?