PostProcessInterceptor将拦截所有类型的响应。但就我而言,我有两类回应。我必须截取一种并放弃另一种未触及的(作为普通的json字符串结果)。
我是否有办法跳过对其他响应类型的拦截。可能是某种标记?或者有没有办法以不同的方式做这件事?
答案 0 :(得分:1)
使用JAX-RS 2,您可以name binding使用ContainerResponseFilter。定义注释:
@NameBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Special {}
并标记过滤器:
@Provider
@Special
public class SpecialFilter implements ContainerResponseFilter {}
只有在资源类或方法也注释@Special
时才会执行过滤器。
如果您需要使用已弃用的PostProcessInterceptor
,则无法使用名称绑定。但if
方法中的简单postProcess
也会这样做。