一multipart解析器
1、Spring中将处理文件的操作交给了MultipartResolver接口来实现,通过这个接口来实现multipart请求。具体有两个实现类
CommonsMultipartResolver:使用Jakarta Commons FileUpload解析
StandardServletMultipartResolver:依赖于servlet3.0对multipart的支持。
2、通常情况下选择standardServlet。因为它不需要依赖其他的项目支持。
3、使用MultipartResolver处理文件请求
3.1 在spring应用上下文中声明该对象
**3.2 配置上传文件的参数 **
在DispatcherServlet中配置参数,如果继承了AnnotationConfigDispatcherServletInitializer,那么可以通过重写customizeRegistration方法 返回一个新的对象来实现
参数说明:
1.上传文件的路径
2.上传文件大小的限制
3.请求大小的限制
4.是否写入到磁盘中
**3.3 控制器处理请求 **
使用RequestPart注解表示一个文件流,参数类型可以使用MulitpartFile和Part类型,这两个功能是相近的,并且如果使用Part的话,就不用配置MultipartResolver了
四、处理异常
4.1Servlet的输出都是每一个Servlet的响应,异常也同样以响应的方式。Spring提供了一种方式可以将异常转换成错误状态码
1.使用ResponseStatus注解异常
2.使用异常
**4.2 编写异常处理方法 **
Spring提供了机制让方法只关注正确的操作,而让其他方法处理异常
在Controller中使用@ExceptionHandler注解标注一个方法,专门处理异常
4.3 使用通知切面处理异常
Spring支持切面,同样可以声明一个切面来处理所有类中的异常。使用@ControllerAdvice注解标注一个类,那么这个类将成为所有Controller的通知