12.Spring--处理文件上传和异常

一multipart解析器

1、Spring中将处理文件的操作交给了MultipartResolver接口来实现,通过这个接口来实现multipart请求。具体有两个实现类

CommonsMultipartResolver:使用Jakarta Commons FileUpload解析
StandardServletMultipartResolver:依赖于servlet3.0对multipart的支持。

2、通常情况下选择standardServlet。因为它不需要依赖其他的项目支持。
3、使用MultipartResolver处理文件请求
3.1 在spring应用上下文中声明该对象

image.png

**3.2 配置上传文件的参数 **
在DispatcherServlet中配置参数,如果继承了AnnotationConfigDispatcherServletInitializer,那么可以通过重写customizeRegistration方法 返回一个新的对象来实现
参数说明:

1.上传文件的路径
2.上传文件大小的限制
3.请求大小的限制
4.是否写入到磁盘中

image.png

**3.3 控制器处理请求 **
使用RequestPart注解表示一个文件流,参数类型可以使用MulitpartFile和Part类型,这两个功能是相近的,并且如果使用Part的话,就不用配置MultipartResolver了

image.png

四、处理异常

4.1Servlet的输出都是每一个Servlet的响应,异常也同样以响应的方式。Spring提供了一种方式可以将异常转换成错误状态码
1.使用ResponseStatus注解异常

image.png

2.使用异常

**4.2 编写异常处理方法 **
Spring提供了机制让方法只关注正确的操作,而让其他方法处理异常
在Controller中使用@ExceptionHandler注解标注一个方法,专门处理异常


image.png

4.3 使用通知切面处理异常
Spring支持切面,同样可以声明一个切面来处理所有类中的异常。使用@ControllerAdvice注解标注一个类,那么这个类将成为所有Controller的通知

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容