SpringMVC

1.1   三层结构介绍

我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器;另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以我们课程中的案例也都是基于三层架构设计的。

三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面:

       表现层:

               也就是我们常说的web 层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http 协议请求web 层,web 需要接收 http 请求,完成 http 响应。

               表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。

               表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。

               表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系)

       业务层:

              也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。

              业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的, 事务应该放到业务层来控制)

       持久层:

              也就是我们是常说的 dao 层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进行曾删改查的。

 

1.2    MVC设计模式介绍

MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。MVC 中每个部分各司其职:

       Model(模型):

              模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。

       View(视图):

              通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。

              通常视图是依据模型数据创建的。

       Controller(控制器):

              是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。

 

1.3    SpringMVC介绍

1.3.1 Spring MVC是什么?

 

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。

SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。

它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。

总之:

Spring MVC和Struts2一样,都是为了解决表现层问题的web框架,它们都是基于MCC设计模式的。而这些表现层框架的主要职责就是处理前端HTTP请求。

Spring MVC由来?

Spring MVC全名叫Spring Web MVC,它是Spring家族Web模块的一个重要成员。这一点,我们可以从Spring的整体结构中看得出来:

      

 

 

 

1.3.2  为什么学习SpringMVC?

也许你要问,为什么要学习Spring MVC呢?struts2不才是主流吗?看SSH的概念有多火?

其实很多初学者混淆了一个概念,SSH实际上指的是Struts1.x+Spring+Hibernate。这个概念已经有十几年的历史了。在Struts1.x时代,它是当之无愧的霸主,但是在新的MVC框架涌现的时代,形式已经不是这样了,Struts2.x借助了Struts1.x的好名声,让国内开发人员认为Struts2.x是霸主继任者(其实两者在技术上无任何关系),导致国内程序员大多数学习基于Struts2.x的框架,又一个貌似很火的概念出来了S2SH(Struts2+Spring+Hibernate)整合开发。

不要再被蒙蔽了,看看下面的调查统计吧:

 

 

 

SpringMVC的市场占有率是40%,而Struts2只有可怜的6%。这已然说明了学习SpringMVC的必要性了,再说了,SpringMVC本身就是spring家族的一员,与整合spring时,SpringMVC根本无需中间整合包,而struts2得需要。

 

posted @ 2020-01-26 21:10  BunnyLHB  阅读(100)  评论(0编辑  收藏  举报