深入解析 SpringMVC 核心原理:从手写简易版 MVC 框架开始 (SmartMvc)
简介
SpringMVC 可以说的上是当前最优秀的 MVC 框架,采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性;为了提高框架的扩展性和灵活性,设计了松耦合可插拔的组件。理解 SpringMVC 的原理,在面试或工作中都十分的重要。
SpringMVC 的原理在网络上到处都可以找得到,但是写的都很概括、零散;对应阅读源码经验较少的小伙伴来说,
自己去看源码被很多细节所干扰阻碍,不能够很好的抽离出 springMVC 原理的主线。
自己想和小伙伴一起从手写简易版的 SmartMVC 框架出发,理出 SpringMVC 的主线并深入理解 SpringMVC 的原理。框架代码开发加上文档编写大概花费时间一个月
项目结构
IDE、源码、依赖版本
JDK 的版本 1.8
整个开发过程中我使用的 IDE 都是 IDEA,可以根据读者自己习惯选择。当然我推荐是用 IDEA
开发 SmartMVC 我们需要使用到 Spring,我使用的版本
5.2.9
整个框架已经开发完成,SmartMVC 的源码地址:
1. Github: https://github.com/silently9527/SmartMvc
2. 码云:https://gitee.com/silently9527/SmartMvc
大家记得顺手给个 star 哦
约定
为了便于后期理解和使用 SpringMVC,所以在 SmartMVC 中所有组件的名称都和 SpringMVC 的保持一致
为了让 SpringMVC 的核心流程更加的清晰,减少的干扰,我拿出了自己 18 米的砍刀大胆的砍掉了 SpringMVC 中很多细节流程,达到去枝干立主脑,让我们能够更加顺畅的理解请求的处理过程
文档目录
所有开发文档都在项目的docs
目录下
01 SmartMVC 总体架构规划
02 RequestMappingHandlerMapping 初始化过程
03 拦截器 HandlerInterceptor
04 HandlerMapping 获取对应的 Handler
05 参数解析器 HandlerMethodArgumentResolver
06 返回解析器 HandlerMethodReturnValueHandler
07 Handler 执行器 InvocableHandlerMethod
08 实现 RequestMappingHandlerAdapter
09 视图 InternalResourceView、RedirectView
10 视图解析器 ViewResolver
11 DispatcherServlet 实现 doDispatch 来完成请求逻辑
12 全局异常处理器 HandlerExceptionResolver
13 核心配置类 WebMvcConfigurationSupport
14 SmartMvc 与 SpringBoot 集成(一)
15 SmartMvc 与 SpringBoot 集成(二)
16 SmartMvc 项目实战
SpringBoot 项目中引入 SmartMVC 的步骤
1. 新建一个 SpringBoot 项目,在 pom.xml 中加入 SmartMVC 的 starter
2. 修改 SpringBoot 生成的启动类,指定 SmartMVC 的`ApplicationContextClass`
写到最后(点关注,不迷路)
在开发文档中可能会存在错误或不足之处,欢迎大家指出。
创作不易,希望朋友们可以点赞评论关注三连
原文地址,转载请注明出处:[https://silently9527.cn/archives/88](https://silently9527.cn/archives/88)
评论