带注释的休息过滤器

时间:2015-11-26 17:36:44

标签: java rest jersey jersey-2.0 jersey-1.0

我正在编写restful webservice,我必须使用静态名称绑定注释编写REST服务器端Filter。我有两个过滤器,一个过滤器有注释@one,另一个过滤器有注释@two我必须将这两个注释放在Rest Webservices上。

@one 
@two
public String getName()
{
return "xyz";
}

第一个过滤器中的逻辑是它将检查某些条件"说条件A"然后只有这将允许请求打到这个休息,而第二个过滤器中的逻辑是它将检查某些条件"说条件B"然后只有这将允许请求打到这个休息。 但我有一种情况,即这两个条件A或B中的任何一个都满足,那么请求也将触及这个休息。  如果任何一个条件都会证明,那么请求也会点击这个Web服务,你能说出如何做到这一点吗?

1 个答案:

答案 0 :(得分:1)

@Priority()来控制filter and interceptors执行顺序。

  

如果您注册了更多过滤器和拦截器,您可能需要定义应该调用它们的确切顺序。可以通过javax.annotation.Priority类定义的@Priority注释来控制顺序。注释接受优先级的整数参数。请求处理中使用的提供者(ContainerRequestFilter,ClientRequestFilter)以及实体拦截器(ReaderInterceptor,WriterInterceptor)基于优先级以升序方式排序。因此,优先级为@Priority(1000)的请求过滤器将在优先级定义为@Priority(2000)的另一个请求过滤器之前执行。在响应处理期间使用的提供程序(ContainerResponseFilter,ClientResponseFilter)以相反的顺序执行(使用降序方式),因此具有使用@Priority(2000)定义的优先级的提供程序将在具有使用@Priority(1000)定义的优先级的另一个提供程序之前执行。

https://jersey.github.io/documentation/latest/filters-and-interceptors.html#d0e9816