Spring Boot 的拦截器使用非常方便,我们只需要以下两步:
1. 自定义类实现HandlerInterceptor并注解@Component让Spring管理
2.自定义一个配置类实现WebMvcConfigurer,注解@Configuration让Spring当作配置类管理
有时候我们需要对控制器的某个方法进行匿名访问可以通过自定义一个注解,例如@Anonymous ,然后在拦截器对该注解直接放行,可实现方法匿名访问。
HandlerInterceptor总共有三个方法
preHandler方法是在对资源的请求之前调用,postHandler方法是对资源的请求之后且在渲染视图之前,
而afterCompletion方法是在渲染视图之后的回调,所以我们可以根据业务需求在合适的方法里增加自己的业务代码。
对于资源的拦截配置有注释说明,直接上代码:
package com.example.demo.interceptor;
import com.example.demo.annotation.Anonymous;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @a