SpringMVC——文件上传、异常处理、拦截器
1. 异常处理
系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息, 后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。 系统的 dao、service、controller 出现都通过 throws Exception向上抛出,最后由 springmvc 前端 控制器交由异常处理器进行异常处理。
1. 处理方式1
自定义异常处理类,并实现HandlerExceptionResolver接口。
1 |
|
2. 处理方式
使用@ExceptionHandler注解加在方法上,处理异常。
另外,可以在异常处理类上加上@ControllerAdvice,用来处理控制器的全局配置。
1 |
|
2. 拦截器
拦截器可以对控制器的方法进行预处理或后处理。
preHandler:在controller方法前执行。如果返回true,放行执行控制器方法,否则不放行。
postHandler:在controller方法执行后执行。
afterHandler:前端控制器完全处理完请求后再执行。
编写代码时,需要实现HandlerInterceptor接口。
1 | public class MyInterceptor1 implements HandlerInterceptor { |
配置拦截器时,可以在xml文件中配置:
1 | <mvc:interceptors> |
也可以在Java配置类中配置
1 |
|
3. 文件上传
Spring MVC可以为我们简化文件的上传,使用MultipartFile对象来获得上传的文件。
1 | ("/fileUpload2") |
在xml中需要配置文件解析器
1 | <!--配置文件解析器--> |
注意:在Spring Boot中已经自动配置文件解析器,如果需要自动配置,可以在配置类中自行配置自定义的文件解析器。