spring 中的拦截器和文件上传

本文详细介绍了Spring框架中的拦截器机制,包括afterCompletion、postHandle和preHandle的执行顺序,以及拦截器的工作配置和原理。同时,还探讨了文件上传的实现,从页面编写到接口参数接收,再到文件流的处理和配置。通过实例展示了如何配置文件上传功能,以及自动配置的StandardServletMultipartResolver解析器的工作流程。
摘要由CSDN通过智能技术生成

一、拦截器

spring的拦截器,还是比较熟悉的,典型的AOP应用。

  • afterCompletion:等数据真正完成之后进行处理
  • postHandle:在目标方法执行完之后进行处理
  • preHandle:在目标方法之前进行处理

拦截器工作配置:

  • 配置需要拦截哪些请求
  • 拦截器放入容器中

 拦截器原理:

  • 根据当前请求,找到可以处理请求的handler和拦截器
  • 执行目标方法之前需要执行拦截器perhandler方法,顺序执行
  • 当perHandler返回false的时候,倒序触发已经执行过的拦截器的afterCompletion
  • 如果任何一个拦截器perHandler执行失败,直接跳出,不执行目标方法
  • 目标方法执行完成后,倒序会执行所有拦截器的postHandler
  • 前两步出现任务异常都会触发所有拦截器的 afterCompletion 方法
  • 页面渲染完成后,也会倒序触发afterCompletion 方法

 

 二、文件上传

文件上传也是常用的小功能,比较简单。

页面编写,注意多文件标签:

 接口参数接收:

文件类相关操作:获取流、转换成文件、空判断等等

文件上传的配置类:

  • 自动配置好了 StandardServletMultipartResolver 文件上传解析器
  • 属性信息放在MultipartProperties中
  • 先判断是否是文件解析
  • 判断是否是文件上传请求,这也是为什么需要那么写
  • 参数解析器来解析文件内容
  • 将request中的文件流封装成一个 Map

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值