拦截器
Spring
的拦截器HandlerInterceptor
基于Java的反射机制,属于面向切面编程(AOP)的一种运用。
举例
@Component
public class DemoInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception {
// 执行方法(controller)前的一些操作
}
@Override
public void postHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws Exception {
// 执行方法(controller)后的一些操作
}
}
Interceptor
会在Filter
之后执行。
Spring Boot
内置了很多拦截器。
场景
比较推荐使用拦截器对请求的前后进行处理,而Filter
的功能更为广泛。