MVC模型分别是什么,常用的mvc框架都有哪些?

1. MVC
首先我们得知道MVC是什么?MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
View层是界面,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。
比方说,有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model就可以了,控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。

2. 三层架构
说到MVC又容易经常提到一个跟它混淆的一种架构就是三层架构,那么这三层又是哪三层?它与MVC又有什么区别?
三层架构是指:视图层 View、服务层 Service,与持久层 Dao。它们分别完成不同的功能。

  • View 层:用于接收用户提交请求的代码在这里编写。
  • Service 层:系统的业务逻辑主要在这里完成。
  • Dao层:直接操作数据库的代码在这里编写。

为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就实现了层间解耦合。

3.MVC与三层架构
那MVC与三层架构有什么区别?见图:

4.SSM与三层架构的关系
SSM,即 SpringMVC、Spring 与 MyBatis 三个框架。它们在三层架构中所处的位置是不同的,即它们在三层架构中的功能各不相同,各司其职。

  • SpringMVC:作为 View 层的实现者,完成用户的请求接收功能。SpringMVC 的Controller作为整个应用的控制器,完成用户请求的转发及对用户的响应。
  • MyBatis:作为 Dao层的实现者,完成对数据库的增、删、改、查功能。
  • Spring:以整个应用大管家的身份出现。整个应用中所有 Bean
    的生命周期行为,均由Spring 来管理。即整个应用中所有对象的创建、初始化、销毁,及对象间关联关系的维护,均由 Spring 进行管理。

阿里P5-MVC知识相关推荐

  1. Android开发三年了,阿里P5都没面上,我到底败在哪儿

    前言 笔者17年华东某211大学毕业,软件工程专业.毕业后本地一家中型互联网企业从事Android移动应用开发.年前辞职了,打算年后"金三银四"换个更大一点的舞台.目标有阿里.字节 ...

  2. 面试被问Mysql没答上来?阿里P5:总结了55道常见面试题,收藏一波

    转载自  面试被问Mysql没答上来?阿里P5:总结了55道常见面试题,收藏一波 正文开始前,分享阿里 P8 高级架构师吐血总结的 <Java 核心知识体系&面试资料.pdf>, ...

  3. 从阿里P5到P8=入门到内核?看看这份对标80W+年薪的Java进阶路线图

    前话: 之前有很多粉丝私信我说: 老光,这Java程序员以后的路到底要怎么走哇? Java开发做到资深是不是到顶了?工资有没有封顶? 真的有"35岁是道坎"这么一说吗? Java之 ...

  4. 阿里P5、P6是什么?加入超级实习生能拿到P5吗?

    导语:阿里作为国内知名互联网大厂,是众多计算机专业大学生心仪企业之一,不管是从薪资福利还是企业文化,都比较受大众喜爱.那么阿里P5.P6是什么级别呢?CSDN超级实习生能帮我获得阿里P5级别的offe ...

  5. 爆款阿里P5到P7晋升之路,九大源码文档助我超神果然努力幸运并存

    前言 学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 学习就像吃饭睡觉一样,是人的一种本能,人人都 ...

  6. 年薪60万+?这份10万字的面试突击宝典涵盖阿里 P5 工程师~P7 所有技术栈

    前言 金九银十已经只剩不到一个月的时间就要来临了,相信每一个程序员应该都有一个大厂梦,都想在这个金九银十能够成功拿到大厂的offer,却又不知自己行不行,也不知该从何突破自己的瓶颈,从而并没有明确的一 ...

  7. 全新出品!阿里 P5 工程师~P8 架构师晋升路线揭秘

    阿里巴巴终于公开了从初级程序员到架构师的学习路线图,这里相对应的基本上就是从 P5 到 P8 的晋升体系!今天老师将会带着大家从初级程序员开始一点点分享整个晋升体系! 职级:初级程序员 薪资:6-12 ...

  8. 号外,阿里P8首发:从阿里P5到阿里P8:年薪70万~200万(加股票)的涨薪路线

    对标阿里P5:年薪20-40w 要求:独立执行既定任务 对标阿里P6:年薪40万~60万 要求:独挡一面,在专业领域具备辅导他人的能力 关键词:独挡一面,辅导他人,持续学习 对标阿里P7:年薪50万~ ...

  9. 阿里P5-基础知识3

    阿里P5-基础知识 1.Try-catch-finally 执行中,在 try 或 catch代码块中return还会执行finally代码? 答案首先是肯定的,因为Try-catch-finally ...

  10. 阿里P5-基础知识4

    阿里P5-基础知识4 1.Throw 与 throws 的区别? throw: 作用在方法内,表示抛出具体异常,所以它抛出的是一个异常实体类.若执行了Throw一定是抛出了某种异常.执行到 throw ...

最新文章

  1. 低调的苹果罕见发表论文,揭开自动驾驶汽车技术的冰山一角
  2. 高级经济师计算机水平考试,【2017上海高级经济师评审职称外语、计算机成绩不再为前置条件】- 环球网校...
  3. 二、数据库原理-设计理论
  4. [spring boot] 01 环境搭建 - 配置java和mvn环境
  5. python怎么写出来的_如何写出优雅又地道的Python代码?【转载】
  6. MathCAD求解方程组
  7. mysql数字连接,MySQL - 已达到数字连接
  8. windows 设置ssh登录
  9. 安装brew_MacBook Pro安装Homebrew慢的问题解决方案
  10. 从零开始刷Leetcode——数组(189.217.219)
  11. python课堂_python课堂整理6---字典
  12. ubuntu下环境变量详解 bashrc, profile, environment
  13. PowerPoint 蜜蜂跳“8”字舞实例
  14. Bitmap缩放(二)
  15. android 分辨率适配的方法
  16. Access、CorelDRAW总结
  17. 试读《线上幽灵:世界头号黑客米特尼克自传》
  18. sound函数及大调音阶播放
  19. html 调用es2015模块,在浏览器中懒加载ES2015模块
  20. 快速学会如何在linux上用户环境变量和系统环境变量

热门文章

  1. 浏览器地址栏字符串转化
  2. linux系统使用命令一次显示日历,linux下的显示有中国农历的日历ccal
  3. H.264——使用H.264视频编解码器JM进行YUV图像序列的编解码
  4. 刚进入软件测试的行业,就我学习到的关于软件测试的基础知识做以下总结。...
  5. python pip安装报错_Python pip安装失败:无效命令egg_info
  6. SONM月报_2018年8月
  7. visual studio控制台中文乱码问题
  8. 卡西欧计算机显示科学计数法怎么调回来,卡西欧计算器中的科学计数法键如何使用?请举例!急!...
  9. jboss 7788
  10. 如何保证按时上床睡觉?