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错误页面

<error-page> 处理逻辑:

  • 处理状态码 <error-code>
  • 处理异常类型 <exception-type>
  • 处理服务 <location>

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 16. Web MVC 框架 16.1 Spring Web MVC 框架介绍 Spring Web 模型-视图-...
    此鱼不得水阅读 1,087评论 0 4
  • 翻译自Spring官方文档 4.1.2版本 相关文章: Spring参考手册 1 Spring Framework...
    liycode阅读 732评论 0 2
  • 对于java中的思考的方向,1必须要看前端的页面,对于前端的页面基本的逻辑,如果能理解最好,不理解也要知道几点。 ...
    神尤鲁道夫阅读 844评论 0 0
  • 作者: 一字马胡 转载标志 【2018-01-07】 更新日志 导入 Spring源码分析系列文章索引: Spr...
    一字马胡阅读 3,179评论 1 18
  • 远离舒适区,不论是健身,工作,还是学习。
    爱喝小米粥儿阅读 218评论 0 1