springmvc源码笔记

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


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

映射处理:


  • DispatcherServlet

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

  • HandleMapping

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

异常处理:


传统servlet web.xml错误页面

处理逻辑:

  • 处理状态码
  • 处理异常类型
  • 处理服务

Spring boot错误处理页面

  • 实现ErrorPageRegistrar
  • 注册ErrorPage对象
  • 实现ErrorPage对象中的Path路径Web服务

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

你可能感兴趣的:(springmvc源码笔记)