我正在编写restful webservice,我必须使用静态名称绑定注释编写REST服务器端Filter。我有两个过滤器,一个过滤器有注释@one,另一个过滤器有注释@two我必须将这两个注释放在Rest Webservices上。
@one
@two
public String getName()
{
return "xyz";
}
第一个过滤器中的逻辑是它将检查某些条件"说条件A"然后只有这将允许请求打到这个休息,而第二个过滤器中的逻辑是它将检查某些条件"说条件B"然后只有这将允许请求打到这个休息。 但我有一种情况,即这两个条件A或B中的任何一个都满足,那么请求也将触及这个休息。 如果任何一个条件都会证明,那么请求也会点击这个Web服务,你能说出如何做到这一点吗?
答案 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