<p align="center">
<a href="#微信公众号"><img src="https://img.shields.io/badge/公众号-贝塔学JAVA-blue.svg" alt="公众号"></a>
<a href="https://juejin.cn/user/2779199782521693"><img src="https://img.shields.io/badge/juejin-掘金-yellow.svg" alt="掘金"></a>
<a href="https://blog.csdn.net/asdewq380303318"><img src="https://img.shields.io/badge/csdn-CSDN-red.svg" alt="CSDN"></a>
<a href="https://my.oschina.net/u/3230120"><img src="https://img.shields.io/badge/oschina-开源中国-green" alt="开源中国"></a>
<a href="https://www.zhihu.com/people/huaan9527-57/posts"><img src="https://img.shields.io/badge/zhihu-知乎-purple" alt="知乎"></a>
</p>
# SmartMvc:手写简易版MVC框架
#### 简介
SpringMVC可以说的上是当前最优秀的MVC框架,采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性;为了提高框架的扩展性和灵活性,
设计了松耦合可插拔的组件。理解SpringMVC的原理,在面试或工作中都十分的重要。
SpringMVC的原理在网络上到处都可以找得到,但是写的都很概括、零散;对应阅读源码经验较少的小伙伴来说,
自己去看源码被很多细节所干扰阻碍,不能够很好的抽离出springMVC原理的主线;所以自己想和小伙伴一起从手写简易版的SpringMVC框架出发,
理出SpringMVC的主线并深入理解SpringMVC的原理
> **别忘记Star哟**
#### 项目结构
```
SmartMvc
├── docs -- 开发文档
├── smart-mvc -- 实现mvc功能的核心代码
├── smartmvc-springboot-autoconfigure -- SmartMvc的自动化配置
├── smartmvc-springboot-demo -- SmartMvc的demo项目
├── smartmvc-springboot-starter -- SmartMvc的starter
└── spring-mvc-demo -- SpringMVC的demo
```
#### IDE、源码、依赖版本
- JDK的版本1.8
- 整个开发过程中我使用的IDE都是IDEA,可以根据读者自己习惯选择。当然我推荐是用IDEA
- 开发SmartMVC我们需要使用到Spring,我使用的版本`5.2.9`
- SmartMVC的源码地址:
1. Github: [https://github.com/silently9527/SmartMvc](https://github.com/silently9527/SmartMvc)
2. 码云:[https://gitee.com/silently9527/SmartMvc](https://gitee.com/silently9527/SmartMvc)
#### 约定
- 为了便于后期理解和使用SpringMVC,所以在SmartMVC中所有组件的名称都和SpringMVC的保持一致
- 为了让SpringMVC的核心流程更加的清晰,减少读者的干扰,我拿出了自己18米的砍刀大胆的砍掉了SpringMVC中很多细节流程,
达到去枝干立主脑,让读者能够更加顺畅的理解整个流转的过程
#### 文档目录
文档备份地址:[https://silently9527.cn/categories/smartmvc](https://silently9527.cn/categories/smartmvc)
- [00 深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc)](https://silently9527.cn/?p=21)
- [01 SmartMVC总体架构规划](https://silently9527.cn/?p=7)
- [02 RequestMappingHandlerMapping初始化过程](https://silently9527.cn/?p=8)
- [03 拦截器HandlerInterceptor](https://silently9527.cn/?p=9)
- [04 HandlerMapping获取对应的Handler](https://silently9527.cn/?p=10)
- [05 参数解析器HandlerMethodArgumentResolver](https://silently9527.cn/?p=11)
- [06 返回解析器HandlerMethodReturnValueHandler](https://silently9527.cn/?p=12)
- [07 Handler执行器InvocableHandlerMethod](https://silently9527.cn/?p=13)
- [08 实现RequestMappingHandlerAdapter](https://silently9527.cn/?p=14)
- [09 视图InternalResourceView、RedirectView](https://silently9527.cn/?p=15)
- [10 视图解析器ViewResolver](https://silently9527.cn/?p=16)
- [11 DispatcherServlet实现doDispatch来完成请求逻辑](https://silently9527.cn/?p=17)
- [12 全局异常处理器HandlerExceptionResolver](https://silently9527.cn/?p=18)
- [13 核心配置类WebMvcConfigurationSupport](https://silently9527.cn/?p=19)
- [14 SmartMvc与SpringBoot集成(一)](https://silently9527.cn/?p=20)
- [15 SmartMvc与SpringBoot集成(二)](https://silently9527.cn/?p=60)
- [16 SmartMvc项目实战](https://silently9527.cn/?p=61)
#### 期待你的加入,公众号:`贝塔学Java`,个人微信号:silently9527
<img src="https://cdn.silently9527.cn/weixhao_gongzonghao_1629032267170.jpg?imageView2/1/w/600/h/350" alt="公众号">
## 其他项目推荐
* [前后端完全开源高颜值淘客APP](https://github.com/silently9527/coupons)
* [Idea工具箱插件](https://github.com/silently9527/Toolkit)
* [Java程序员自我学习的书单](https://github.com/silently9527/ProgrammerBooks)
* [技术文章以及代码收录仓库](https://github.com/silently9527/ProgrammerNotes)
* [高颜值可定制化的简介导航网站](http://nav.silently9527.cn/)
## 我的技术博客
[https://silently9527.cn/](https://silently9527.cn/)
没有合适的资源?快使用搜索试试~ 我知道了~
SpringMVC精品资源--深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc).zip
共132个文件
java:105个
md:17个
xml:6个
需积分: 5 0 下载量 40 浏览量
2024-02-18
12:51:58
上传
评论
收藏 137KB ZIP 举报
温馨提示
SpringMVC精品资源--深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc)
资源推荐
资源详情
资源评论
收起资源包目录
SpringMVC精品资源--深入解析SpringMVC核心原理:从手写简易版MVC框架开始(SmartMvc).zip (132个子文件)
spring.factories 124B
.gitignore 333B
ExceptionHandlerExceptionResolver.java 9KB
RequestMappingHandlerAdapter.java 6KB
WebMvcConfigurationSupport.java 6KB
DispatcherServlet.java 5KB
InvocableHandlerMethod.java 5KB
ResourceTest.java 5KB
RequestMappingHandlerMapping.java 4KB
HandlerMethodArgumentResolverTest.java 4KB
RequestMappingHandlerMappingTest.java 4KB
InvocableHandlerMethodTest.java 4KB
AppConfig.java 4KB
HandlerMethodReturnValueHandlerTest.java 3KB
ServletWebServerFactoryAutoConfiguration.java 3KB
ServletWebServerApplicationContext.java 3KB
ContentNegotiatingViewResolver.java 3KB
MappedInterceptor.java 3KB
HandlerExecutionChain.java 2KB
ExceptionHandlerMethodResolver.java 2KB
RequestBodyMethodArgumentResolver.java 2KB
WebMvcConfigurerComposite.java 2KB
DelegatingWebMvcConfiguration.java 2KB
RedirectView.java 2KB
HandlerMethodArgumentResolverComposite.java 2KB
ResolvableTypeTest.java 2KB
RequestMappingHandlerAdapterTest.java 2KB
HandlerMethodReturnValueHandlerComposite.java 2KB
SmartMvcDispatcherServletAutoConfiguration.java 2KB
RequestParamMethodArgumentResolver.java 2KB
SumRecursiveTask.java 2KB
ControllerAdviceBean.java 2KB
DispatcherController.java 2KB
DispatcherServletTest.java 2KB
ResponseBodyMethodReturnValueHandler.java 2KB
MyHandlerMethodArgumentResolver.java 1KB
ContentNegotiatingViewResolverTest.java 1KB
UserController.java 1KB
HandlerMethod.java 1KB
AbstractCachingViewResolver.java 1KB
MappingRegistry.java 1KB
UrlBasedViewResolver.java 1KB
ModelMethodReturnValueHandler.java 1KB
ViewNameMethodReturnValueHandler.java 1KB
InternalResourceView.java 1KB
ModelAndViewContainer.java 1KB
CustomizedSpliterator.java 1KB
ViewMethodReturnValueHandler.java 1KB
TestReturnValueController.java 1KB
MapMethodReturnValueHandler.java 1KB
SpringMvcDemoApplication.java 1KB
Test.java 1KB
HandlerInterceptorTest.java 1KB
WebMvcConfigurer.java 1KB
ModelMethodArgumentResolver.java 1KB
Test2HandlerInterceptor.java 1KB
ServletResponseMethodArgumentResolver.java 1KB
TestHandlerInterceptor.java 1KB
ServletRequestMethodArgumentResolver.java 993B
TestController.java 986B
TestInvocableHandlerMethodController.java 977B
RedirectViewTest.java 938B
ModelAndView.java 922B
WebMvcAutoConfiguration.java 897B
HandlerInterceptor.java 826B
SmartMvcDispatcherServletRegistrationBean.java 821B
UserVo.java 801B
UserVo.java 787B
TypeDescriptorTest.java 784B
GenericWebApplicationContext.java 747B
AbstractView.java 745B
RequestContextHolder.java 738B
TestHandlerController.java 723B
HandlerMethodArgumentResolver.java 686B
MissingServletRequestParameterException.java 680B
InterceptorRegistry.java 673B
HandlerMethodReturnValueHandler.java 672B
MyWebMvcConfigurer.java 630B
SmartmvcSpringbootDemoApplication.java 612B
RequestMappingInfo.java 589B
Customer.java 588B
NoHandlerFoundException.java 581B
IndexController.java 556B
EnableWebMvc.java 528B
RequestMapping.java 512B
BaseJunit4Test.java 497B
ApiResponse.java 475B
RequestParam.java 461B
HandlerAdapter.java 433B
ControllerAdvice.java 422B
ExceptionHandler.java 418B
HttpStatus.java 415B
InternalResourceViewResolver.java 403B
RequestBody.java 401B
MyUserParam.java 396B
ResponseBody.java 381B
View.java 370B
HandlerExceptionResolver.java 351B
WebApplicationContext.java 350B
ConfigurableWebApplicationContext.java 326B
共 132 条
- 1
- 2
资源评论
码农阿豪
- 粉丝: 9951
- 资源: 1750
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 南京邮电大学数学实验:熟练掌握 Matlab 软件的基本命令和操作
- 2017校招真题校园招聘真题算法题(37道)Python源码.zip
- 基于单片机protues仿真的多功能自动饮水机系统设计(仿真图、源代码、演示视频)
- 二叉树7-1-1.cpp
- android 9.0 原生模拟器 签名文件
- 技术面试最后反问面试官的话 校招面试非技术问题有哪些 非技术问题如何回答.png
- NB-IOT-BC26全网通模块Altium+ CADENCE +PADS三种格式(原理图SCH+PCB封装库)文件.zip
- 基于微信小程序开发的校园失物招领系统源码毕业设计(优质项目源码).zip
- 词向量是一种将自然语言中的单词转换为数值向量的技术,它能够捕捉词义和上下文信息
- nmap与masscan的简单使用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功