在Spring中通过HTTP方法排除URL映射

时间:2015-12-10 06:41:13

标签: java spring spring-mvc

我下面有两个URL,都有diff HTTP方法。

1. /v1/user/email (POST)

2. /v1/user/email (PUT)

我只需要从拦截器中排除一个URL。但下面将排除两者。

<mvc:interceptor> 
     <mvc:exclude-mapping path = "/v1/user/email"/>
</mvc:interceptor>

有没有办法,我们只允许一个URL绕过这个,基于HTTP方法。

1 个答案:

答案 0 :(得分:1)

你可以做的最好的方法是编写一个实现Handler Interceptor接口的抽象类,并实现所有3个

的实现

afterCompletion执

的postHandle

preHandle(所有3将通过检查请求类型在内部调用抽象方法)

并拥有将由Interceptor类实现的相应抽象方法。

抽象类中的默认方法必须检查请求类型并相应地继续。

public abstract class AbstractHandler implements HandlerInterceptor
{

     @Override
     public void afterCompletion(HttpServletRequest req, HttpServletResponse res, Object handOb, Exception ex) throws Exception
     {
          if (//check the req type)
          {
             afterCompletionMethod(req, res, handler, ex);
          }
     }

     public abstract void afterCompletionMethod(HttpServletRequest req, HttpServletResponse res, Object handOb, Exception ex) throws Exception;


 }