首页  

springboot 使用 拦截器     所属分类 springboot 浏览量 1266
org.springframework.web.servlet.HandlerInterceptor

preHandle      controller 方法执行前
postHandle     controller 方法执行后
afterCompletion   视图渲染完成后执行 

preHandle 返回true 才会执行 controller方法 postHandle  afterCompletion 


注册 拦截器
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import demo.interceptor.TimeLogInterceptor;

@Configuration
public class InterceptorConfig extends WebMvcConfigurerAdapter {
 
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new TimeLogInterceptor()).addPathPatterns("/**");
        super.addInterceptors(registry);
    }
}



拦截器 与 过滤器的区别

1.Filter是Servlet容器的,Interceptor是SpringMVC实现的 
2.Filter对所有请求起作用,Intercptor可以设置拦截规则,且只对经过DispatchServlet的请求起作用
3.Filter只能拿到request和response,interceptor可以拿到整个请求上下文,包括request和response
4.Filter基于函数回调,Interceptor 基于反射 


例子代码
https://gitee.com/dyyx/springboothello/tree/master/src/main/java/demo/interceptor

上一篇     下一篇
flink基础

装逼词汇大全

springboot 使用 servlet 过滤器

问题排查命令和工具及实战案例

maven-shade-plugin 使用指南

maven-assembly-plugin 和 maven-shade-plugin