SpringMvc框架的核心思想

  许多是否,反思一个框架的架构,主要涉及思路,感觉比仔细看代码要有用的多。

  今天回顾一下SpringMvc框架的主要设计思路。

  其实,SpringMvc的设计思路很简洁,就是利用普通对象来处理网络Http请求,当然,在servlet容器内部,还要借助标准定义的Servlet。SpringMvc的主要点就在于DispatchServlet,这个类负责拦截指定的请求类型,路径等,将其通过各种手段接收请求后,预处理请求,然后再调用一些普通的java对象的方法,具体的处理思路包括很多,包括,对请求路由到具体的对象的方法,对请求参数的处理,包括参数接收,转换,对普通对象方法的返回值的处理,包括映射具体的视图,返回流,返回json字符串,返回xml等等。

  从request到response,响应的转换为了对普通对象的方法的传入参数,调用,返回返回值这三个步骤。

  为了将一个请求映射到一个普通对象的方法调用,框架需要分析请求,如路径,请求类型,参数等等,根据分析的信息,来寻找具体的普通对象的方法,找到之后,框架开始模拟我们手工调用一个对象的方法,此时,框架需要解析出具体的方法入参,然后调用,调用完成之后,还要处理具体的返回值,根据不同的返回值,构成不同的处理逻辑。

  总体而言,框架具体非常强大的扩展能力。

  目前,基本的主题流程已经跟踪过代码了,大概花了25小时左右,感觉自己对SpringMvc有了整体的把握了,不同我感觉还要深入掌握这个框架,深刻理解它的设计思想。

原文地址:https://www.cnblogs.com/weiguangyue/p/9285962.html

时间: 2024-10-09 01:39:51

SpringMvc框架的核心思想的相关文章

详解Spring框架的核心思想之IOC

微信号:GitShare微信公众号:爱折腾的稻草如有问题或建议,请在公众号留言[1] 前续 为帮助广大SpringBoot用户达到"知其然,更需知其所以然"的境界,作者将通过SpringBoot系列文章全方位对SpringBoot2.0.0.RELEASE版本深入分解剖析,让您深刻的理解其内部工作原理. No.1 Spring是什么 为了让更多的朋友了解Spring,首先科普一下Spring!有兴趣的朋友可以去Spring官网逛逛,地址是:https://spring.io/ The

springmvc框架中的核心对象DispatcherServlet

SpringMVC是Spring中的模块,它实现了mvc设计模式,首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handle,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handle进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染,并把数据装入到request域,返回给用户. Dis

Spring 框架基础(03):核心思想 IOC 说明,案例演示

本文源码:GitHub·点这里 || GitEE·点这里 一.IOC控制反转 1.IOC容器思想 Java系统中对象耦合关系十分复杂,系统的各模块之间依赖,微服务模块之间的相互调用请求,都是这个道理.降低系统模块之间.对象之间.微服务的服务之间耦合度,是软件工程核心问题之一.因为Spring框架中核心思想就是IOC控制反转,用来实现对象之间的解耦. 2.控制反转 传统方式 对象A如果想使用对象B的功能方法,在需要的时候创建对象B的实例,调用需要的方法,对对象B有主动的控制权. IOC容器 当使用

创建一个简单的SpringMVC框架

昨天写了一个单个Mybatis框架的小例子,今天来写一个SpringMVC框架的小例子.来复习一下框架的一些知识.主要是理解框架的执行流程.下面就直接开始吧. SpringMVC框架是现在比较流行的MVC框架,类似于Struts2,它的好处有很多,最重要的大概就是它是Spring的衍生产品,属于SpringFrameWork的后续产品,所以不需要特别的jar包,直接就可以和Spring整合,另外SpringMVC框架的设计思想是:控制器是基于方法的拦截,不是Struts2基于实例的拦截,所以Sp

vue.js学习笔记(一):什么是mvvm框架,vue.js的核心思想

一:MVVM框架 MVVM框架的应用场景:  1.针对具有复杂交互逻辑的前端应用 2.提供基础的架构抽象 3.提供ajax数据持久化,保证前端用户体验 二:vue.js的核心思想 (一):数据驱动 (二):数据响应原理 (三):组件化 (四)组件设计原则 1:页面上每个独立的可视/可交互区域视为一个组件 2:每个组件对应一个工程目录,组件所需要的各种资源在这个目录下就近维护 3:页面只不过是组件的容器,组件可以嵌套自由组合形成完整的页面

Rookey.Frame v1.0 视频教程之三发布-框架核心思想介绍

本期发布视频: (三)Rookey.Frame v1.0框架核心思想 介绍了Rookey.Frame v1.0框架搭建的核心思想,将框架核心思想理解清楚,对框架运行就会得心应手 官方视频教程: http://rookey.gotoip2.com/Page/Example.html?page=Example&flag=Video 下期视频将介绍如何通过Rookey.Frame v1.0极速开发平台项目结构及核心代码介绍

SpringMVC框架整理(二)

SpringMVC框架整理第二发,数据绑定流程,数据校验(错误信息国际化),拦截器,异常处理. 数据绑定流程(数据转换,数据格式化,数据校验) 1. Spring MVC 主框架将 ServletRequest  对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象 2. DataBinder 调用装配在 Spring MVC 上下文中的 ConversionService 组件进行数据类型转换.数据格式化工作.将 Servlet

struts2框架的核心内容

 Struts1和Struts2的区别和对比: Action 类: • Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Action是接口. • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能.Struts2提供一个ActionSupport基类去 实现 常用的接口.Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Ac

[jbdj]SpringMVC框架(2)加载自定义目录下的springmvc.xml配置文件

自己定义文件目录,文件名称无疑是件快乐的事情! 如果springmvc.xml配置文件放在src目录下,web.xml代码如下: <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/200