springmvc源码笔记

2020-03-18  本文已影响0人  爱斯基摩白

MVC框架设计思路、功能特性以及插槽式实现


M表示Model、V表示View、C表示Controller

映射处理:


DispatcherServlet < FrameworkServlet < HttpServletBean < HttpServlet
<表示extends
自动装配:
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration.DispatcherServletConfiguration
@Controller
@RequestMapping
@RequestParam、@RequestBody使用方式及他们的关系

HandleMapping 处理 Handler映射
HandleMapping 寻找Request URI,匹配Handler
HandleMapping ->RequestMappingHandlerMapping 可以理解为@RequestMapping、Handler、Mapping
handle是处理的方法
Request -> Handler -> 执行结果 -> 返回(REST)-> 普通的文本
Spring Web MVC的配置 Bean:WebMvcProperties

异常处理:


传统servlet web.xml错误页面

<error-page> 处理逻辑:

Spring boot错误处理页面

Spring web MVC

@ExceptionHandler
优点:易于理解,尤其全局异常处理
不足:很难完全掌握所有类型
@RestControllerAdvice=@ControllerAdvice+@ResponseBody
@ControllerAdvice 专门拦截AOP@controller

视图技术:


View
render方法
处理页面渲染的逻辑,例如:Velocity、JSP、Thymeleaf
ViewResolver
view Resolver = 页面 + 解释器 -> resolveViewName
寻找合适/对应View对象
RequestURI->RequestMapping

视图解析:


国际化:利用locale技术,实现视图内容的国际化


参考文献:https://docs.spring.io/spring/docs/5.2.4.RELEASE/spring-framework-reference/web.html#mvc-exceptionhandlers

上一篇 下一篇

猜你喜欢

热点阅读