SSM三大框架+SpringMVC的工作原理及其流程

一、SSM中各层作用及关系
1.持久层:DAO层(mapper层)(属于mybatis模块)
    DAO层(Mapper层):主要负责与数据库进行交互设计,用来处理数据的持久化工作。
    DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。
    然后在Spring的xml配置文件中定义此接口的实现类,就可在其他模块中调用此接口来进行数据业务的处理,
    而不用关心接口的具体实现类是哪个类,这里往往用到的就是反射机制,DAO层的jdbc.properties数据源配置,
    以及有 关数据库连接的参数都在Spring的配置文件中进行配置。

2.业务层:Service层(属于spring模块)
    Service层:主要负责业务模块的逻辑应用设计。也就是项目中你看到的Service包。
    Service层的设计首先是设计接口,再设计其实现的类。也就是项目中你看到的service+impl包。
    接着再在Spring的xml配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。
    最后通过调用DAO层已定义的接口,去实现Service具体的实现类。
    ps:(Service层的业务实现,具体要调用到已定义的DAO层的接口.)

3.控制层/表现层:Controller层(Handler层) (属于springMVC模块)
    Controller层:主要负责具体的业务模块流程控制,也就是你看到的controller包。
    Controller层通过要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的xml配置文件里面,
    针对具体的业务流程,会有不同的控制器。

4.View层 (属于springMVC模块)
    负责前台jsp页面的展示,此层需要与Controller层结合起来开发。
    Jsp发送请求,controller接收请求,处理,返回,jsp回显数据。

二、各层之间的联系
    1)DAO层,Service层这两个层次可以单独开发,互相的耦合度很低。
    2)Controller,View层耦合度比较高,因而要结合在一起开发。也可以听当做两层来开发,这样,
       在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,项目会显得清晰简单。
    3)值得注意的是,Service逻辑层设计:
          Service层是建立在DAO层之上的,在Controller层之下。因而Service层应该既调用DAO层的接口,
          又提供接口给Controller层的类来进行调用,它处于一个中间层的位置。每个模型都有一个Service接口,
          每个接口分别封装各自的业务处理方法。

三、SSM框架实现一个web程序主要使用到如下三个技术:
    1)Spring:用到注解和自动装配,就是Spring的两个精髓IOC(反向控制)和 AOP(面向切面编程)。
    2)SpringMVC:用到了MVC模型,将流程控制代码放到Controller层处理,将业务逻辑代码放到Service层处理。
    3)Mybatis:用到了与数据库打交道的层面,dao(mapper)层,放在所有的逻辑之后,处理与数据库的CRUD相关
       的操作。

比如你开发项目的时候,需要完成一个功能模块:
    1.先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。
    2.写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进行的那些操作,比如 insert、selectAll、
       selectByKey、delete、update等。
    3.写Mapper.java/Dao.java,将Mapper.xml中的操作按照id映射成Java函数。实际上就是Dao接口,二者选一即可。
    4.写Service.java,为控制层提供服务,接受控制层的参数,完成相应的功能,并返回给控制层。
    5.写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的URL到相应的处理函数,
       并获取参数,对参数进行处理,之后传给服务层。
    6.写JSP页面调用,请求哪些参数,需要获取什么数据。

SpringMvc工作原理图

SSM三大框架+SpringMVC的工作原理及其流程相关推荐

  1. (Spring+SpringMVC+MyBatis)SSM三大框架整合教程

    目录 一.基本概念 1.Spring 2.SpringMVC 3.MyBatis 二.开发环境搭建 三.Maven Web项目创建 四.SSM整合 1.Maven引入需要的JAR包 2.Spring与 ...

  2. 三大框架-- SpringMVC

    一.概念 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 S ...

  3. 【转载】SpringMVC的工作原理

    声明: 转载文章署名及贴出原文链接 -------------------------------------------- 知乎-杀戮苍生 原文地址:https://zhuanlan.zhihu.c ...

  4. springmvc工作流程_springMVC工作原理及流程详细讲解

    简述 本文主要介绍springMVC工作原理. 工作原理 客户端发送HTTP请求,DispatcherServlet控制器拦截到请求,调用HandlerMapping 解析请求对应的Handler,H ...

  5. IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/中后台/体验管理等)之详细攻略

    IT:前端进阶技术路线图(初级→中级→高级)之初级(研发工具/HTML/CSS/JS/浏览器)/中级(研发链路/工程化/库/框架/性能优化/工作原理)/高级(搭建/Node/IDE/中后台/体验管理/ ...

  6. Spark SQL架构工作原理及流程解析

    Spark SQL架构工作原理及流程解析,spark sql从shark发展而来,Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析.逻辑执行计划翻译.执行计划优化等逻辑. Sp ...

  7. ARKit从入门到精通-ARKit工作原理及流程介绍

    2017-06-15 坤小 Cocoa开发者社区 转载请注明出处:http://www.jianshu.com/p/0492c7122d2f 1.1-写在前面的话 1.2-ARKit与SceneKit ...

  8. ARKit从入门到精通(2)-ARKit工作原理及流程介绍

    转载请注明出处:ARKit从入门到精通(2)-ARKit工作原理及流程介绍 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARKit工作原理 1.3.1-ARSCNView ...

  9. 身份证OCR识别工作原理及流程

    随着互联网科技.移动互联科技的发展和云端计算服务.移动智能设备的普及(性能提升),智能OCR识别技术在云端.服务器端及移动端的应用也得到了长足的发展.今天为大家介绍下身份证OCR识别如何快捷.准确的识 ...

最新文章

  1. 贪心算法-03哈夫曼编码问题
  2. XidianOJ 1123 K=1 Problem of Orz Pandas
  3. 【转】FluentAPI详细用法
  4. 图像全参考客观评价算法比较
  5. 第一次JAVA课,第一次课堂考,课后感受
  6. 2.移植3.4内核-支持烧写yaffs2,裁剪内核并制作补丁
  7. java二级考试大纲_计算机二级Java考试内容大纲
  8. 新消费万字之辩 | “疯狗浪”时代来临,品牌如何结构性增长?
  9. 各种格式的文件使用工具打开
  10. 虚拟机Linux IP地址更改
  11. matlab 图例自定义,matlab实现自定义曲线图以及图例
  12. 【PR】pr在导入rst字幕文件后,修改的样式无法显示在视频画面中
  13. Discuz!论坛教程之去掉帖子列表页的附件图标的方法
  14. 计算机主机内有哪些硬件,电脑主机内部有哪些硬件
  15. Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
  16. 预览文件乱码解决方法记录
  17. python实现QQ和微信刷屏
  18. JAVA多媒体网络教学计算机毕业设计Mybatis+系统+数据库+调试部署
  19. php 百度天气接口api接口,PHP调用百度天气接口API实现查询实时天气
  20. 如何评价吴军《浪潮之巅》?来自反面的声音

热门文章

  1. 帝国CMS7.5默认首页模板太难看,如何修改首页模板样式
  2. 如何屏蔽百度热搜榜?(关闭百度搜索热点、关闭百度风云榜实时热点)(Adblock Plus插件)
  3. P1502 窗口的星星
  4. jieba结巴分词--关键词抽取_jieba分词的原理(文末有维特比算法讲解)
  5. 18.Listview结合SimplterAdapter最全面的使用
  6. Mybatis使用foreach批量插入Oracle提示命令未正确结束
  7. python输入任意数字,以升序排序(基础)
  8. 功能安全---AUTOSAR架构深度解析
  9. UML系列文章(31)体系结构建模---部署图
  10. @急急急,为什么相同的代码,不同电脑运行结果不一样