1.SpringMVC流程图解
- 客户端发送请求,直接请求到DispatchServlet
- DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler
- 解析到对应的Handler也即是我们常说的Controller控制器,开始由HandlerAdapter适配器处理
- HandlerAdapter会根据Handler来调用真正的处理器处理请求,并处理相应的业务逻辑。
- 处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。
- ViewResolver会根据逻辑View查找实际的View
- DispaterServlet把返回的Model传给View视图渲染。
- 把view返回给客户端。
2.异常处理
- 设计一个类继承RuntimeException,配合@ExceptionHandler注解在对错误的统一处理
- 新建一个接口,使用default方法对接口进行实现
- 使用增强的@Controllleradvice做全局异常处理,配合@ExceptionHandler;在类中对错误进行统一的处理
3.常用注解
- @RequestMappping:访问路径
- 配置处理器的HTTP请求方法,URL等信息,这样才能将请求和方法进行映射
- @RequestBody:允许请求参数在请求体中
- @PathVariable:接受路径中的参数,从请求的URI中获取
- @RequestParam注解的参数从请求携带的参数中获取
- @ResponseBody:直接返回Json数据
- @RestController:Controller+ResponseBody 返回JSON数据格式
- @ExceptionHandler:异常处理
注解的本质:继承了Annotation的特殊接口,具体实现类是Java运行生成的动态代理。
什么是SpringMVC拦截器以及如何使用
Spring的处理程序映射机制包括处理程序拦截器,拦截器必须实现HandlerIntereptor接口
- preHandle:在执行实际处理程序之前调用
- postHandle:在执行完成程序之后使用
- afterCompletion:在完成请求后调用。