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

- afterCompletion:等数据真正完成之后进行处理
- postHandle:在目标方法执行完之后进行处理
- preHandle:在目标方法之前进行处理
拦截器工作配置:
- 配置需要拦截哪些请求
- 拦截器放入容器中

拦截器原理:
- 根据当前请求,找到可以处理请求的handler和拦截器

- 执行目标方法之前需要执行拦截器perhandler方法,顺序执行


- 当perHandler返回false的时候,倒序触发已经执行过的拦截器的afterCompletion

- 如果任何一个拦截器perHandler执行失败,直接跳出,不执行目标方法
- 目标方法执行完成后,倒序会执行所有拦截器的postHandler


- 前两步出现任务异常都会触发所有拦截器的 afterCompletion 方法
- 页面渲染完成后,也会倒序触发afterCompletion 方法

二、文件上传
文件上传也是常用的小功能,比较简单。
页面编写,注意多文件标签:

接口参数接收:

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

文件上传的配置类:

- 自动配置好了 StandardServletMultipartResolver 文件上传解析器
- 属性信息放在MultipartProperties中
- 先判断是否是文件解析

- 判断是否是文件上传请求,这也是为什么需要那么写

- 参数解析器来解析文件内容

- 将request中的文件流封装成一个 Map


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

816

被折叠的 条评论
为什么被折叠?



