运行环境
jdk 1.8
spring boot 2.6.1
maven 3.9.1
编译器 idea
参照1天搞定SpringBoot+Vue全栈开发的学习笔记
静态资源访问
默认路径:classpath:/static/
目录
以下在application.properties
中修改
spring.mvc.static-path-pattern=/images/**
可以添加虚拟路径
spring.web.resources.static-locations=classpath:/static
添加新的静态资源路径
文件上传原理
注意一个小坑
修改表单enctype="multipart/from-data"
后端参数名称一定要与表单一致
默认配置:单个文件大小不超过1M,文件总数不超过10MB
以下在application.properties
中修改默认文件大小
spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB
修改后默认的单个文件不超过10MB
spring.web.resources.static-locations=/upload/
添加新的静态资源路径,使用户上传的文件可以通过静态目录访问
MultipartFile f
用于获取文件f的各项信息
拦截器
权限检查 | 性能监控 | 通用行为
通用行为:
读取cookie得到用户信息并将用户对象放入请求
提取Locale、Theme信息等
HandlerInterceptor
接口定义了preHandle
,postHandle
,afterCompletion
三种方法,通过重写这三种方法实现请求前、请求后等操作
拦截器定义
//定义
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler){
//request 前端请求 response 给前端返回对应信息
System.out.println("LoginInterceptor");
return true;
}
}
拦截器注册
要使拦截器定义生效,需要在interceptor
包中增加一个WebConfig
类,添加@Configuration
标记使服务器自动读取配置
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/user/**");
}
}
重写这个addInterceptors
增加拦截器的方法,使其new刚刚新建的LoginInterceptor
addPathPatterns("/user/**")
:拦截的路径,拦截/user/
路径下的全部文件,若没有填写,拦截主目录下所有文件