MVC是英文Modle View Controller的简称,是一种软件设计典范,目的是将业务逻辑、数据、页面视图代码分离,达到增加开发效率、降低耦合度、代码更利于维护的目的 。
文章插图
Spring MVC是一个流行的MVC框架,我们知道Spring核心是解决业务逻辑层和其他各层的松耦合问题,Spring MVC由Spring基础框架支撑,让开发JAVA Web 程序变得更简单 。
文章插图
Spring MVC 框架原理:
1.用户HTTP请求 ——> DispatcherServlet(调度器根据请求进行调度)
【Java开源框架之SpringMVC原理及源码解析】2.DispatcherServlet ——> HandlerMApping(找到对应的处理器)
3.HandlerMapping ——> Controller(调用对应的处理器)
4.Controller ——>业务层(调用业务层完成相应的业务)
5.业务层 ——> ModelAndView(处理结果数据)
6.ModelAndView ——>DispatcherServlet ——>ViewResolver(视图解析器做处理)
7.ViewResolver ——> View(模型数据显示) ——>用户
Spring MVC 实现源码解析
ContextLoaderListener类:
简述:ContextLoaderListener类是一个监听类,在Tomcat启动后创建一个IOC容器,并将创建的IOC容器存到servletContext中 。
web.xml中的配置:
<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
springMVC父容器初始化流程图:文章插图
DispatcherServlet类:
简述:DispatcherServlet是SpringMVC的入口,DispatcherServlet类主要用作职责调度工作,本身主要用于控制流程 。
代码实现的业务逻辑:
DispatcherServlet类本身也是一个Servlet,以下是该类的关系图:
文章插图
DispatcherServlet调度器架构原理:
文章插图
HandlerMapping接口:
简述:根据调度器的请求找到一个处理器handler,其实现机制简单来说就是维持了一个url到Controller关系的Map结构 。
实现机制:
HandlerMapping的实现机制就是根据request来获得HandlerExecutionChain,其实就是获取真正要执行的Controller或者某个具体的方法 。HandlerMapping接口提供唯一的方法getHandler(HttpServletRequest request) 。
ViewResolver接口:
简述:ViewResolver的主要作用是把一个逻辑上的视图名称解析为一个真正的视图 。
InternalResourceViewResolver类是ViewResolver的实现类,在xml中配置如下:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><property name="prefix" value=https://www.isolves.com/it/cxkf/kj/2020-08-06/"/WEB-INF/jsp/"/>
View接口:简述:View接口的职责就是接收model对象、Request对象、Response对象,并渲染输出结果给Response对象 。
推荐阅读
- 开源调度系统:liteflow控制台功能
- 智能硬件不止树莓派,八款优秀智能硬件开源项目推荐
- 破解 Java Agent 探针黑科技
- 内含95个工具函数 前端大佬都在使用的JavaScript工具函数宝典
- Java分布式项目,你使用的哪种注册中心?为啥?
- Seq2seq框架下的文本生成
- Java中的“协程”
- 前端技术框架选型,跨端框架盘点
- JAVA并发-ScheduledExecutorService
- JavaScript的深拷贝实现