HandlerInterceptorAdapter或HandlerInterceptor的使用
- Spring拦截器
- HandlerInterceptorAdapter需要继承,HandlerInterceptor需要实现
- 可以作为日志记录和登录校验来使用
- 建议使用HandlerInterceptorAdapter,因为可以按需进行方法的覆盖。
主要为3种方法:
- preHandle:拦截于请求刚进入时,进行判断,需要boolean返回值,如果返回true将继续执行,如果返回false,将不进行执行。一般用于登录校验。
- postHandle:拦截于方法成功返回后,视图渲染前,可以对modelAndView进行操作。
- afterCompletion:拦截于方法成功返回后,视图渲染前,可以进行成功返回的日志记录。
springmvc的配置xml
<!-- 拦截器配置,拦截顺序:先执行后定义的,排在第一位的最后执行。 -->
<mvc:interceptors>
<!-- 可配置多个-->
<mvc:interceptor>
<!-- mapping path 表示 需要拦截的url-->
<mvc:mapping path="${adminPath}/**" />
<!-- exclude-mapping path 表示 需要排除拦截的url-->
<mvc:exclude-mapping path="${adminPath}/" />
<mvc:exclude-mapping path="${adminPath}/login" />
<!-- bean 表示拦截器的类-->
<bean class="org.jasig.cas.web.interceptor.LogInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
springboot的注解配置
@Configuration public class InterceptorConfig implements WebMvcConfigurer { private static final Logger logger = LoggerFactory.getLogger(InterceptorConfig.class); @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(authenticationInterceptor()) .addPathPatterns("/**"); registry.addInterceptor(loginInterceptor()) .addPathPatterns("/**") .excludePathPatterns("/css/**","/images/**","/js/**","/login.html"); // 拦截所有请求,通过判断是否有 @LoginRequired 注解 决定是否需要登录或者通过excludePathPatterns配置不需要拦截的路径 //多拦截器配置 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理