SpringMVC

1 SpringMVC

1.1 分层设计

​ 在大型软件系统设计时,业务一般会相对复杂,假如所有业务实现的代码都纠缠在一起,会出现逻辑不清晰、可读性差,维护困难,改动一处就牵一发而动全身等问题。为了更好解决这个问题就有了我们现在常说的分层架构设计。

​ **分层设计的本质其实就是将复杂问题简单化,首先基于单一职责原则(SRP-Single responsibility principle)让每个对象各司其职,各尽所能。然后再基于“高内聚,低耦合”的设计思想实现相关层对象之间的交互。这样可以更好提高程序的可维护性和可扩展性,**例如生活中的楼宇设计,生日蛋糕设计,企业的组织架构设计等。

1.2 MVC设计思想

​ MVC(Model–view–controller)是软件工程中的一种软件架构模式,基于此模式把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。目的是通过这样的设计使程序结构更加简洁、直观,降低问题的复杂度。其中MVC各个组成部分为:

  • 视图(View)- UI设计人员进行图形界面设计,负责实现与用户交互。

  • 控制器(Controller)- 负责获取请求,处理请求,响应结果。

  • 模型(Model) - 实现业务逻辑,数据逻辑实现。

思考:海底捞中的MVC?(菜单-View,服务员-Controller,厨师-Model)

1.3 JavaEE组件应用中的MVC设计

​ 在JavaEE技术体系中,基于MVC设计思想,各个核心组件的应用关系如图所示:

image-20221216144743681

​ 在上图中,Servlet充当MVC中的Controller,负责调用model处理业务,负责转换或重定向某个页面,在页面上呈现数据。

1.4 Spring框架中Web模块的MVC设计

​ Spring MVC 是Spring 框架中基于MVC设计思想,实现的一个用于处理Web请求的模块。这个模块封装了对Servlet的技术的应用,简化了程序员对请求和响应过程中数据的处理,其简易架构分析如图所示:

image-20221216145017056

图中,核心组件分析:

  1. DispatcherServlet:前端控制器,不需要工程师开发,由框架提供

    作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求

  2. HandlerMapping:处理器映射器,不需要工程师开发,由框架提供

    作用:根据请求的url、method等信息查找Handler,即控制器方法

  3. Handler:处理器,需要工程师开发

    作用:在DispatcherServlet的控制下Handler对具体的用户请求进行处理

  4. HandlerAdapter:处理器适配器,不需要工程师开发,由框架提供

    作用:通过HandlerAdapter对处理器(控制器方法)进行执行

  5. HandlerInterceptor:拦截器, 需要工程师开发

    作用:实现请求响应的共性处理

  6. ViewResolver:视图解析器(前缀+viewname+后缀),不需要工程师开发,由框架提供

    作用:进行视图解析,得到相应的视图,例如:ThymeleafView、InternalResourceView、RedirectView

  7. View:视图

    作用:将模型数据通过页面展示给用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值