阿里P5-MVC知识
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知识相关推荐
- Android开发三年了,阿里P5都没面上,我到底败在哪儿
前言 笔者17年华东某211大学毕业,软件工程专业.毕业后本地一家中型互联网企业从事Android移动应用开发.年前辞职了,打算年后"金三银四"换个更大一点的舞台.目标有阿里.字节 ...
- 面试被问Mysql没答上来?阿里P5:总结了55道常见面试题,收藏一波
转载自 面试被问Mysql没答上来?阿里P5:总结了55道常见面试题,收藏一波 正文开始前,分享阿里 P8 高级架构师吐血总结的 <Java 核心知识体系&面试资料.pdf>, ...
- 从阿里P5到P8=入门到内核?看看这份对标80W+年薪的Java进阶路线图
前话: 之前有很多粉丝私信我说: 老光,这Java程序员以后的路到底要怎么走哇? Java开发做到资深是不是到顶了?工资有没有封顶? 真的有"35岁是道坎"这么一说吗? Java之 ...
- 阿里P5、P6是什么?加入超级实习生能拿到P5吗?
导语:阿里作为国内知名互联网大厂,是众多计算机专业大学生心仪企业之一,不管是从薪资福利还是企业文化,都比较受大众喜爱.那么阿里P5.P6是什么级别呢?CSDN超级实习生能帮我获得阿里P5级别的offe ...
- 爆款阿里P5到P7晋升之路,九大源码文档助我超神果然努力幸运并存
前言 学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 学习就像吃饭睡觉一样,是人的一种本能,人人都 ...
- 年薪60万+?这份10万字的面试突击宝典涵盖阿里 P5 工程师~P7 所有技术栈
前言 金九银十已经只剩不到一个月的时间就要来临了,相信每一个程序员应该都有一个大厂梦,都想在这个金九银十能够成功拿到大厂的offer,却又不知自己行不行,也不知该从何突破自己的瓶颈,从而并没有明确的一 ...
- 全新出品!阿里 P5 工程师~P8 架构师晋升路线揭秘
阿里巴巴终于公开了从初级程序员到架构师的学习路线图,这里相对应的基本上就是从 P5 到 P8 的晋升体系!今天老师将会带着大家从初级程序员开始一点点分享整个晋升体系! 职级:初级程序员 薪资:6-12 ...
- 号外,阿里P8首发:从阿里P5到阿里P8:年薪70万~200万(加股票)的涨薪路线
对标阿里P5:年薪20-40w 要求:独立执行既定任务 对标阿里P6:年薪40万~60万 要求:独挡一面,在专业领域具备辅导他人的能力 关键词:独挡一面,辅导他人,持续学习 对标阿里P7:年薪50万~ ...
- 阿里P5-基础知识3
阿里P5-基础知识 1.Try-catch-finally 执行中,在 try 或 catch代码块中return还会执行finally代码? 答案首先是肯定的,因为Try-catch-finally ...
- 阿里P5-基础知识4
阿里P5-基础知识4 1.Throw 与 throws 的区别? throw: 作用在方法内,表示抛出具体异常,所以它抛出的是一个异常实体类.若执行了Throw一定是抛出了某种异常.执行到 throw ...
最新文章
- 低调的苹果罕见发表论文,揭开自动驾驶汽车技术的冰山一角
- 高级经济师计算机水平考试,【2017上海高级经济师评审职称外语、计算机成绩不再为前置条件】- 环球网校...
- 二、数据库原理-设计理论
- [spring boot] 01 环境搭建 - 配置java和mvn环境
- python怎么写出来的_如何写出优雅又地道的Python代码?【转载】
- MathCAD求解方程组
- mysql数字连接,MySQL - 已达到数字连接
- windows 设置ssh登录
- 安装brew_MacBook Pro安装Homebrew慢的问题解决方案
- 从零开始刷Leetcode——数组(189.217.219)
- python课堂_python课堂整理6---字典
- ubuntu下环境变量详解 bashrc, profile, environment
- PowerPoint 蜜蜂跳“8”字舞实例
- Bitmap缩放(二)
- android 分辨率适配的方法
- Access、CorelDRAW总结
- 试读《线上幽灵:世界头号黑客米特尼克自传》
- sound函数及大调音阶播放
- html 调用es2015模块,在浏览器中懒加载ES2015模块
- 快速学会如何在linux上用户环境变量和系统环境变量
热门文章
- 浏览器地址栏字符串转化
- linux系统使用命令一次显示日历,linux下的显示有中国农历的日历ccal
- H.264——使用H.264视频编解码器JM进行YUV图像序列的编解码
- 刚进入软件测试的行业,就我学习到的关于软件测试的基础知识做以下总结。...
- python pip安装报错_Python pip安装失败:无效命令egg_info
- SONM月报_2018年8月
- visual studio控制台中文乱码问题
- 卡西欧计算机显示科学计数法怎么调回来,卡西欧计算器中的科学计数法键如何使用?请举例!急!...
- jboss 7788
- 如何保证按时上床睡觉?