这篇博文主要介绍的是SSM(Spring、SpringMVC、Mybatis)框架中,MVC各层的作用以及各层之间的交互和框架整体运行流程。

一、MVC各层级间的作用及关系

表现层(springMVC):Controller层(Handler层)

负责具体的业务模块流程的控制
Controller层通过要调用Service层的接口来控制业务流程,控制的 
配置也在Spring配置文件里面。
业务层(Spring):Service层

Service层:负责业务模块的逻辑应用设计。
首先设计其接口,然后再实现他的实现类。
通过对Spring配置文件中配置其实现的关联,完成此步工作,我们 
就可以通过调用Service的接口来进行业务处理。
最后通过调用DAO层已定义的接口,去实现Service具体的 实现类。
持久层(Mybatis):Dao层(Mapper层)

Dao层:负责与数据库进行交互设计,用来处理数据的持久化工作。
DAO层的设计首先是设计DAO的接口,
然后在Spring的配置文件中定义此接口的实现类,就可在其他模块中 
调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是 
哪个类,这里用到的就是反射机制, DAO层的数据源配置,以及有 
关数据库连接的参数都在Spring的配置文件中进行配置。
视图层:View层

负责前台jsp页面的展示。
此层需要与Controller层结合起来开发。
各层间的联系:

本来Controller层与View层是可以放在.jsp文件里一起开发的,但是为了降低代码的复杂度,提高其可维护性,将其分为了这两层,这也体现了MVC框架的特性,即结构清晰,耦合度低。
Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

二、SSM框架整合说明

这里有一篇总结的详细的博文,大家可以参考着这位博主的来理解。 
SSM框架--详细整合教程

三、SSM框架各层交互以及运行流程

Model

  • 业务处理 :业务逻辑(Service)
  • 数据持久层:CRUD (Dao - 数据持久化对象)

View

  • 展示数据
  • 提供链接发起Servlet请求 (a,form,img…)

Controller (Servlet)

  • 接收用户的请求 :(req:请求参数、Session信息….)

  • 交给业务层处理对应的代码

  • 控制视图的跳转

    登录--->接收用户的登录请求--->处理用户的请求(获取用户登录的参数,username,password)---->交给业务层处理登录业务(判断用户名密码是否正确:事务)--->Dao层查询用户名和密码是否正确-->数据库
    
    • 三层架构

    • 三层架构是指:视图层view,服务层service,持久层Dao,通常也叫(表示层UI,业务逻辑层BLL,数据访问层DAL)它们的功能是: 
      1.view层:  用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面
      2.service层:实现业务的主要逻辑,是系统架构中体现核心价值的部分。
      3.Dao层:有时候也称为是持久层,其功能主要是负责数据库的访问。可以访问数据库、二进制文件、文本文件等。简单的说法就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。


      三层架构的出现是为了降低耦合度,在这里,使用面向抽象编程,也就是上层对下层的调用,直接通过接口来完成,下层对上层的真正服务提供者,是下层实现的接口实现类,实现类是可以更换的,这就实现了层间的解耦合。


      实际项目中的包命名结构,其实就是三层架构的体现:

      xxx:代表公司名称       yyy:代表项目名称

    • com.xxx.yyy.dao      dao层接口
    • com.xxx.yyy.dao.impl    dao层实现
    • com.xxx.yyy.service    service层接口
    • com.xxx.yyy.service.impl  service层实现      
    • com.xxx.yyy.web      web层
    • com.xxx.yyy.util      工具包
    • com.xxx.yyy.domain    javabean
    • MVC

      MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
      1.View: 视图,为用户提供使用界面,与用户进行交互。 
      2.Model: 模型承载数据,对用户提交请求进行计算的模块,分为两类:1.数据承载bean,2.业务承载bean,数据承载bean是指实体类专门承载业务数据的,比如Student,User,业务处理bean是指Service或者Dao对象,专门处理用户的请求的。 
      Controller:控制器,用来将用户请求转发给相应的Model进行处理,并且根据Model的计算结果向用户提供相应的响应。

      MVC工作流程:

      最典型的MVC就是我们最近学习的JSP + Servlet + javabean的模式。

      三层架构与MVC的关系

      三层架构与MVC毫无关系。之所以这样说,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决B-S应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。

      之所以我们会混淆,是因为在进行web开发时两者会同时使用。

      在三层架构设计中,表示层可由MVC设计模式中的视图和控制器来实现,而业务逻辑层和数据访问层则组成MVC设计模式中的模型的实现。因此,在实际的应用中,都是采用三层架构来搭建系统的框架,而表示层与业务逻辑层和数据访问层的交互则是通过MVC设计模式来实现。

      SSM与三层架构的对应关系

      SSM,即SpringMVC,Spring与Mybatis的统称。

      1.SpringMVC:作为view的实现者,它的controller作为整个应用的控制器,完成用户请求的转发和对用户的响应。 
      2.Mybatis:作为Dao的实现者,完成数据库的增伤改查等功能。 
      3.Spring:是整个应用的大管家,整个应用中所有的bean的生命周期行为,都是由Spring来管理的,就是说整个应用中所有的对象的创建,初始化,销毁,以及对象之间关联的关系维护,都是由Spring来进行管理。

SSM框架中MVC各层的作用以及运行流程相关推荐

  1. SSM框架中的前后端分离

    认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端. ...

  2. SSM框架中使用Spring的@Transactional注解进行事务管理

    一 介绍 在企业级应用中,保护数据的完整性是非常重要的一件事.因此不管应用的性能是多么的高.界面是多么的好看,如果在转账的过程中出现了意外导致用户的账号金额发生错误,那么这样的应用程序也是不可接受的 ...

  3. (转)淘淘商城系列——SSM框架整合之Dao层整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72721093 一个项目中往往有三层即Dao层.Service层和Web层,看标题就知道了,本文 ...

  4. SSM框架中 出现的406 (Not Acceptable)

    首先,需要清楚,http state 406代表什么意思: 406是HTTP协议状态码的一种,表示无法使用请求的特性来响应请求的网页.一般指客户端浏览器不接受所请求页面的MIME类型. 出现这样的错误 ...

  5. 在ssm框架中进行删除数据是报错has an unsupported return type

    项目场景: 在ssm框架中进行删除数据是报错Request processing failed; nested exception is org.apache.ibatis.binding.Bindi ...

  6. ssm框架中利用pagehelper分页,完成模糊查询与select条件查询

    ssm框架中利用pagehelper分页,完成模糊查询与select条件查询 一.问题分析 1.1 往期回顾 pagehelper分页 https://blog.csdn.net/Jia_Peng_T ...

  7. SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层都有什么作用

    SSM是sping+springMVC+mybatis集成的框架. MVC即model view controller. model层=entity层.存放我们的实体类,与数据库中的属性值基本保持一致 ...

  8. 对SSM框架中Dao层,Mapper层,controller层,service层,model层,entity层等层的理解

    SSM 是 Spring + SpringMVC + Mybatis集成的框架. MVC即model view controller.(模型,视图,控制器) 一.entity层(model层,doma ...

  9. 初步对SSM框架中Dao层,Mapper层,service等层的理解

    大家好啊,我是司空,最近在工作闲暇之余正在学springBoot,学到了关于mybatis的配置,里面涉及到几个不同层之间的使用让我有点摸不着头脑,没法,公司用的还是十年前的老框架,对于现在这些框架真 ...

最新文章

  1. C++引用不能绑定到临时数据
  2. iOS之深入解析图片解压缩到渲染的过程与原理
  3. 下载android版趣步最新版,趣步下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  4. 我为什么会选择计算机专业之 《我的编程人生前传》
  5. ScriptManager和ClientScriptManager
  6. IPSR(中断程序状态寄存器),IPSR包含了当前正在执行的中断服务程序编号,用于识别当前中断。
  7. Java 数据类型和 MySql 数据类型对应一览表
  8. learn python the hard way 习题6~10总结
  9. Linux命令学习 ls
  10. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第4节 方法引用_2_方法引用_通过对象名引用成员方法...
  11. NOWCODER暑期多校第四场F:Beautiful Garden(签到题)题解
  12. SQL 数据库 学习 016 如何附加数据库
  13. android p cts camera测试 android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControl fail
  14. 计算机英语的四种变量,计算机英语:BASIC语言变量
  15. 用计算机表白我不喜欢你了,“我喜欢你”用文言文怎么说?拿这3句去表白,男生不忍心拒绝你!...
  16. Lync2013 升级Skype For Bussiness 2015 升级思路整理
  17. assignin与evalin用法理解
  18. 信息收集--子域名查询
  19. 你知道什么是敏捷交换机吗?
  20. springboot新手项目从零开始搭建,涉及excel数据导出和邮箱发送(上)

热门文章

  1. 动态规划 -- 二维数组中左上到右下的最短路径和。
  2. 乐鑫esp8266学习rtos3.0笔记第5篇:基于乐鑫idf框架,研究出超稳定、掉线重连、解决内存泄露问题的Mqtt框架,支持esp8266和esp32!(附带链接)
  3. 新版chrome浏览器字体编码插件Charset v0.5.5
  4. 【计算机网络原理·实验·第九章】搭建内网域名解析服务器
  5. MyBatis 源码阅读 -- 核心操作篇
  6. 1-10 Burpsuite 暴力破解用户密码
  7. 【Microsoft Azure 的1024种玩法】二十四.通过Azure Front Door 的 Web 应用程序防火墙来对 OWASP TOP 10 威胁进行防御
  8. 3.6 使用矩形网格工具绘制围棋棋盘 [Illustrator CC教程]
  9. ibooks打开iframe引用的html文件乱码
  10. Java 程序员 5 家大厂的面试总结(已拿Offer)