一、拦截器
spring的拦截器,还是比较熟悉的,典型的AOP应用。
- afterCompletion:等数据真正完成之后进行处理
- postHandle:在目标方法执行完之后进行处理
- preHandle:在目标方法之前进行处理
拦截器工作配置:
- 配置需要拦截哪些请求
- 拦截器放入容器中
拦截器原理:
- 根据当前请求,找到可以处理请求的handler和拦截器
- 执行目标方法之前需要执行拦截器perhandler方法,顺序执行
- 当perHandler返回false的时候,倒序触发已经执行过的拦截器的afterCompletion
- 如果任何一个拦截器perHandler执行失败,直接跳出,不执行目标方法
- 目标方法执行完成后,倒序会执行所有拦截器的postHandler
- 前两步出现任务异常都会触发所有拦截器的 afterCompletion 方法
- 页面渲染完成后,也会倒序触发afterCompletion 方法
二、文件上传
文件上传也是常用的小功能,比较简单。
页面编写,注意多文件标签:
接口参数接收:
文件类相关操作:获取流、转换成文件、空判断等等
文件上传的配置类:
- 自动配置好了 StandardServletMultipartResolver 文件上传解析器
- 属性信息放在MultipartProperties中
- 先判断是否是文件解析
- 判断是否是文件上传请求,这也是为什么需要那么写
- 参数解析器来解析文件内容
- 将request中的文件流封装成一个 Map