Spring(4):SpringMVC框架

一、先介绍一下简单的SpringBoot框架

1.1、什么是SpringBoot

从本质来说SpringBoot就是Spring,它去掉了Spring繁琐的XML配置,只需少量配置即可。

1.2、SpringBoot优点

(1)去配置化,简便开发

(2)提供嵌入式HTTP服务器,如Tomcat,可以轻松地开发和测试

(3)提供命令行接口(CLI)工具,可用于开发和测试

1.3、RESTful 风格介绍

传统MVC模式开发会直接返回给客户端一个视图,但是RESTful Web服务返回JSON形式(前后端分离)

二、Spring MVC框架介绍

2.1、什么是MVC模式

MVC可以理解为一种设计模式

SpringMVC框架是以请求为驱动,围绕Servlect设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图(其中核心类是DispatcherServlet,它是一个Servlect,顶层实现Servlect接口)

2.2、SpringMVC的使用

需要在哎web.xml中配置DispatcherServlect,需要配置Spring监听器ContextLoaderListener

<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener
	</listener-class>
</listener>
<servlet>
	<servlet-name>springmvc</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet
	</servlet-class>
	<!-- 如果不设置init-param标签,则必须在/WEB-INF/下创建xxx-servlet.xml文件,其中xxx是servlet-name中配置的名称。 -->
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring/springmvc-servlet.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>

2.3、SpringMVC工作原理

(1)客户端发送请求

(2)——>前端控制器DispatcherServlect接受客户端请求

(3)——>找到处理器映射HandlerMapping解析请求对应的Handler

(4)——>HandlerAdapter 会根据Handler 来调用真正的处理器处理请求(适配器模式),并处理相应业务逻辑

(5)——>处理器返回一个模型视图ModelAndView 

(6)——>视图解析器解析

(7)——>返回一个视图对象

(8)——>前端控制器DispatcherServlect渲染数据

(9)得到视图对象返回给客户

如下图:

SpringMVC运行原理

2.4、SpringMVC重要组件说明

(1)前端控制器DispatcherServlect(不需要开发,框架提供)

作用:Spring MVC 的入口函数,接收请求响应结果,相当于“中央处理器”,相当于MVC中的C,由它调用其他组件处理用户请求,降低了组件之间的耦合。

(2)处理器映射器HandlerMapping(不需要开发,框架提供)

作用:根据用户请求的URL查找Handler处理器(Controller)。

(3)处理器适配器handlerAdapter(不需要开发,框架提供)

作用:按照特定规则按去执行Handler处理器,是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

(4)处理器Handler需要开发

(也就是Controller控制器)

类似于DispatcherServlect前端控制器的后端控制器,在DispatcherServlect控制下,Handler对具体用户请求进行处理

(5)视图解析器View resolver(不需要开发,框架提供)

作用:进行视图解析,根据逻辑视图名解析成真正的视图(view),负责处理结果生成View视图对象,最后通过View渲染处理结果通知页面展示给用户

(6)视图View需要开发

View是一个接口,实现类支持不同的View类型

注意:处理器Handler和View都需要自己开发

上一篇:Spring

发布了52 篇原创文章 · 获赞 116 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/RuiKe1400360107/article/details/103610245