SpringMVC架构与流程
前言:
什么是mvc?MVC是模型(model)-视图(view)-控制器(controller)的缩写 ,是一种软件设计思想,主要的作用就是解决应用开发的耦合性,将应用的输入、控制、输出进行强制解耦。
视图:只用于用户的显示,不进行任何的业务处理。主要用来获取和显示数据
理解了mvc,我们就来说一说mvc的执行过程:用户通过view层向服务器发出请求,controller接收请求后,调用对应的model后获取数据,控制器在将数据返回给view。
好了,我们可以进入正题了,既然SpringMVC是基于MVC的软件设计思想的框架,我们就先看一下SpringMVC的M、V、C分别是什么
上图里的东西我们不用细看,只需要大概晓得对应的mvc是啥的就行
了解的springMVC的架构思想(mvc),我就开始继续深入的学习springmvc的执行流程吧。
如果上图比较模糊,你可以保存到本地看
下面的顺序并不代表图中的顺序:
了解了流程,我们在详细了解一下里面讲到的部件:
处理器映射器(HandlerMapper),这个玩意就是根据不同的方式找到处理器(Handler),它支持的有配置文件形式,接口形式,注解形式等等
ModelAndView 封装了数据和视图信息,如果想进行页面的数据交互,可以选择这玩意进行传输,数据的存放位置,默认的是Request域
视图(View ) SpringMVC提供了很多视图,比如jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp
为了更清晰的了解流程,我们来看一下源码的执行:
下图分别是disptcherServlet的initStrategies()方法以及web/servlet/DispatcherServlet.properties文件
而图中 处理器映射器 和处理器适配器默认配置的是过时的(过时了并不代表不能用),所以我们需要配置一下:
在spring-mvc.xml文件中配置:
!-- 配置处理器映射器 --
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/
!-- 配置处理器适配器 --
bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/
为什么这么配置spring就能用呢?因为spring对bean的加载有一个顺序,同名称的spring只会认第一次加载的bean,也就是配置文件最先配置的bean
当然了还有更简洁的配置,添加
?xml version="1.0" encoding="UTF-8"?
beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"
context:component-scan base-package="com.lifeibai"/
mvc:annotation-driven/
/beans
文章如有错误,请您一定指出,感谢之至!
如果你有不同的见解,欢迎留言,或者加我QQ986320270
图片可能来源于网络,如有侵权请告知。
最后:关注一下呗
如果你有不同的见解,欢迎留言,或者加我QQ986320270
最后:关注一下呗
长按二维码识别关注