快速入门——SpringBoot 文件上传和拦截器
学习自哔哩哔哩上的“刘老师教编程”,具体学习的网站为:4.SpringBoot文件上传+拦截器_哔哩哔哩_bilibili,以下是看课后做的笔记,仅供参考。
第一节:静态资源访问
使用IDEA创建SpringBoot项目,会默认创建出classpath:/static/目录,静态资源一般放在这个目录下(图片……),如果默认的静态资源过滤策略不满足开发需求,可以自定义静态资源过滤策略
在application.properties中直接定义过滤规则和静态资源位置
spring.mvc.static-path-pattern=/static/**
spring.web.resources.static-locations=classpath:/static/
过滤规则为/static/**,静态资源位置为classpath:/static/
第二节:文件上传
表单的enctype属性规定在发送到服务器之前因该如何对表单数据进行编码。当表单的enctype="application/x-www-form-urlencoded"(默认)时,form表单中的数据格式为:key=value&key=value。当表单的enctype="multipart/form-data"时,其传输数据形式如下
SpringBoot工程嵌入tomcat限制了请求的文件大小,每个文件的配置最大为1Mb,单词请求的文件的总数不能大于10Mb。要更改这个默认值需要在配置文件(如application.properties)中加入两个配置
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
当表单的enctype="multipart/form-data"时,可以使用MultipartFile获取上传的文件数据,再通过transferTo方法将其写入磁盘中。
第三节:拦截器
拦截器再web系统中很常见,对于某些全局统一的操作,我们可以把它提到拦截其中实现,大致有以下几种使用场景:
权限检查:登陆检测,进入处理程序检测是否登录,如果没有,直接返回登录页面。
性能监控:优势系统再某段时间莫名奇妙的慢,可以通过拦截器在进入处理程序之前记录开始时间,在处理完后记录结束时间 ,从而得到该请求的处理时间。
通用行为:读取cookie得到用户信息并将用户对象放入请求,从而方便后续流程使用,还有提取Locale,Theme信息等,只要是多个处理程序都需要的,即可是哟个拦截器实现。