spring mvc的一些基础概念

spring MVC

概念

1. MVC思想

1.1 什么是MVC?

spring MVC是由mvc演变而来的

mvc(Model, View, Controller)模拟—视图—控制器

模型 : 用于存储数以及用户请求的业务逻辑

视图 : 像控制提交数据显示模型中的数据

控制器 : 根据视图提出的请求判断将请求和数据交给哪个模型处理,将处理后的有关结果交给哪个视图更新显示

1.2 目的

解耦 : 它主要是通过分离模型,视图以及控制器在应用程序中的角色将业务逻辑从界面中解耦

1.3 优点

  1. 分工明确 :(开发人员可以只关注整个结构中的其中一层)使用mvc可以把数据库开发,程序业务逻辑开发,页面开发分开,每一层都具有相同的特征,方便以后的代码维护
  2. **松耦合 : **(可以降低层与层之间的依赖)视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码.同样,一个应用的业务流程或者业务规则的改变只需要改动mvc的模型层即可
  3. **复用性高 : **(利于各层逻辑的复用)想多个视图能够共享一个模型,不论你视图层使用flash界面或是wep界面,同一个模型就是能处理他们,将数据和业务规则从表示层分开,就可以最大化从用代码.
  4. 有利于标准化 :(有利于通过工程化,共计划产生管理程序代码)

概括来说 : 分层设计可以达到如下目的 : 分散关注,松散耦合,逻辑复用,标准定义

1.4 缺点

spring mvc分层式具有的缺陷

  1. ​ 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

  2. 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

  3. 由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。

  4. MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。

  5. *如何改善:

    第一个缺点,可以采用一些设计模式来到改善。

    第二个缺点,可以通过系统的缓存机制来减小对性能的影响;

2. spring MVC框架概念与特点

  • 首先mvc是一个框架
  • 在文本模型中,是一种很流行的框架
  • 通过把model(模型),view(视图),Controller(控制)分离
  • 把较为复杂的web应用分成逻辑清晰的几个部分
  • 主要是为了简化开发,减少出错

2.1 spring mvc是spring的子框架,所以拥有spring的特性,比如依赖注入

3.mvc的工作原理

  1. 客户端发送请求到DispatcherServlet(前端控制器)
  2. DispatcherServlet查询handlerMapping找到处理请求的Controller
  3. controller调用业务逻辑后,返回ModelAndView(ModelAndView是springMVC的底层对象,包括model和view)
  4. DispatcherServlet查询ModelAndView,找到指定视图
  5. 视图将结果返回客户端

主要的还是接收请求,处理请求,响应请求

4.springMVC流程

  1. 用户发送请求到前端控制器------>DispatcherServlet
  2. DispatcherServlet收到请求调用HandlerMapping------->处理器映射器
  3. 处理器映射器找到具体的处理器(可以根据xml配置,注解进行查找,生成处理器对象及处理器拦截器(如果有则生成)并返回给DispatcherServlet
  4. DispatcherServlet调用HandlerAdapter----->处理器适配器
  5. HandlerAdapter经过适配调用具体的处理器(controller,也叫后端控制器)
  6. controller执行完成并返回ModelAndView
  7. HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
  8. DispatcherServlet将ModelAndView传给ViewReslover----->视图解析器
  9. ViewReslover解析返回具体view
  10. DispatcherServlet解析根据view进行渲染视图(即将模型数据填充至视图中)
  11. DispatcherServlet响应用户

DispatcherServlet-------->前端控制器

HandlerMapping--------->处理器映射器

HandlerAdapter---------->处理器适配器

controller------->控制器(也叫后端控制器\

ModelAndView----->模型和视图

ViewReslover----->视图解析器

猜你喜欢

转载自blog.csdn.net/weixin_45561352/article/details/108561834