Spring MVC
Last updated
Was this helpful?
Last updated
Was this helpful?
Spring MVC
Spring MVC深度探险:http://www.iteye.com/blogs/subjects/springmvc-explore
框架介绍:https://www.cnblogs.com/xiaohouzai/p/7402038.html
https://blog.csdn.net/jeikerxiao/article/details/53885832
Spring MVC是什么:
1、SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。
2、是Spring的一个模块,基于MVC的一个框架。MVC是一种设计模式。M代表model;V代表view;C代表controller。M指的是模型,即dao层和service层,V指的是视图,即jsp html 等。C指的是controller,即控制器。
3、Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
4、spring框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。
5、Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
6、Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
7、springMVC是一个MVC的开源框架,springMVC=struts2+spring,springMVC就相当于是Struts2加上sring的整合,但是这里有一个疑惑就是,springMVC和spring是什么样的关系呢?这个在百度百科上有一个很好的解释:意思是说,springMVC是spring的一个后续产品,其实就是spring在原有基础上,又提供了web应用的MVC模块,可以简单的把springMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说springMVC和spring无缝集成,其实springMVC就是spring的一个子模块,所以根本不需要同spring进行整合。
8、MVC
M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)
V-View 视图(做界面的展示 jsp,html……)
C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)
1、用户发起请求到前端控制器(Controller)
2、前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)中查找Handler对象(Model)。
3、HandlerMapping返回执行链,包含了2部分内容: ① Handler对象、② 拦截器数组
4、前端处理器通过处理器适配器包装后执行Handler对象。
5、处理业务逻辑。
6、Handler处理完业务逻辑,返回ModelAndView对象,其中view是视图名称,不是真正的视图对象。
7、将ModelAndView返回给前端控制器。
8、通过视图名称查找视图。
9、视图解析器(ViewResolver)返回真正的视图对象(View)。
10、(此时前端控制器中既有视图又有Model对象数据)前端控制器根据模型数据和视图对象,进行视图渲染。
11、返回渲染后的视图(html/json/xml)返回。
12、给用户产生响应。
优点:
1.方便解耦,简化开发,职责鲜明,分工明确;
2.AOP的很好支持,方便面向切面编程;
3.对主流的框架提供了很好的集成支持;
4.Spring属于低侵入,代码污染极低;
1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
2.可以提供众多服务,事务管理,WS等。
3.AOP的很好支持,方便面向切面编程。
4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
5.Spring DI机制降低了业务对象替换的复杂性。
6.Spring属于低侵入,代码污染极低。
7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部