我正在 JAX-RS (JSR-311) 中寻找一种机制,让我能够提炼出一些特定于我的应用程序的横切关注点。例如,我的应用程序具有为每个请求查找或构建的特定上下文。我希望能够在一个集中的位置执行这种类型的逻辑,然后以某种方式附加到上下文以供各种资源用于请求的其余部分。如果我可以仅对某些 URL 子集执行这些类型的操作,那就更好了。

JAX-RS 为路径段、cookie、 header 等提供的默认注入(inject)很棒,但是对这些部分的自定义解释呢?我真的不想在每次需要时都构建它。我宁愿有一种方法来指定它的构建方式,然后将上下文组件作为我的资源方法的一部分注入(inject)。

有没有这样的钩子(Hook)?我可以操纵提供者模型来做到这一点吗?顺便说一句,我想尽可能长时间地保持实现独立(Jersey、RESTEasy 等)。

提前感谢您的任何见解。

最佳答案

您可以使用 ContextResolver 提供程序为资源或其他提供程序提供任何上下文。基本上,您需要为要注入(inject)的任何上下文实现 javax.ws.rs.ext.ContextResolver<T>。不要忘记用 @Provider 注释并注册。

关于java - JAX-RS 中的横切关注点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5355936/

10-11 23:15
查看更多