MVC模式,SSM框架,三层架构,Java开发中常见包名的意义什么是MVC模式?
M model 模型-编写程序应有的功能,数据管理和数据库设计。
V view 视图层-界⾯设计⼈员进⾏界⾯设计。
C controller 控制-控制器负责转发请求,对请求进⾏处理。
什么是SSM框架?
SSM是Spring+Spring MVC+Mybatis的缩写,主流的Java EE企业级框架。
其中,Spring是⼀个轻量级的控制反转(IOC)和⾯向切⾯(AOP)的容器框架,可以帮助我们创建对象。
Spring MVC控制开发,让开发简单规范。
MyBatis是⼀个基于Java的持久层框架,封装了增删改查操作。
Spring
看到这个,很多⼈会和你说什么控制反转(IoC),依赖注⼊(DI)、AOP、事务什么……对新⼿来说,这些是什么⿁呢?
控制反转
我不写定义,就说⼀下你的电脑。你的电脑上有usb⼝吧,有hdmi⼝吧。电脑上⽤什么键盘,不取决于电脑本⾝,⽽是插在usb上的键盘是什么?这个能理解吧。你看控制电脑⽤什么输⼊的设备并不是由电脑控制的,⽽是你插⼊的键盘是什么来控制的。这个控制不就反了吗?
依赖注⼊
就是控制反转。电脑的输⼊设备依赖它被插⼊的是什么键盘。插⼊机械键盘,输⼊设备就是机械键盘,插⼊数字键盘就只能输⼊数字。从插键盘这个事来说:⽆⾮是从电脑⾓度看,是依赖注⼊,输⼊设备是什么依赖注⼊的键盘是什么;从键盘⾓度看是控制反转,插⼊的键盘来控制电脑是什么输⼊设备。
为什么要⽤依赖注⼊?⽬的就是可以灵活搭配。如果你的电脑上的键盘是焊死在电脑上的,键盘坏了,你的电脑也废了。你肯定不想这样吧。
Java开发中,我们需要创建⼤量的对象,有些重要的对象牵⼀发⽽动全⾝,这样的对象我们可以交给Spring帮我们来创建,我们只需要提供配置⽂件,这个配置⽂件可以是xml,也可以是java本⾝。好⽐S
pring是个⼯⼚,按图纸就可以做出产品。
AOP
什么是切⾯?你可以这样想:⼀个公司有多个销售部,都需要⾏政帮忙搞定⽇常的订⽂具、机票、办公室、出差酒店什么的,都需要财务搞定报销、收付款什么的事务吧,要仓库帮忙发货什么的。不可能每个销售部都去招⼏个⾏政、财务和仓管什么吧,销售部门只要做好业务就⾏了,订⽂具什么的事情交个专门的部门去办就⾏。
在Spring AOP 中,把这些公共的事务,也就是这个例⼦中的⾏政啊、财务啊、仓管啊,看成⼀个个切⾯,让你的开发的时候,专注于核⼼业务。
事务
说个例⼦:⽐如我⽀付宝转给你100块钱,正常操作应该是我的账号⾥少了100,你的多了100。如果由于各种原因,我少100后,系统出问题了。没有事务的话,你的账号不会多100,⽽我的账号少了100。这个就是有问题了。有事务的话:要不我少100你多100都成功,要不就都不成功,这样钱才不会少。⽽⼿写⼀个事务还是有点⼩难度的,Spring的事务(spring-tx)可以帮我们轻松实现。
Spring MVC
这个的话,你要先理解⼀下MVC是什么?
C - Controller:控制器。接受⽤户请求,调⽤ Model 处理,然后选择合适的View给客户。
M - Model:模型。业务处理模型,接受Controller的调遣,处理业务,处理数据。
V - View:视图。返回给客户看的结果。注意这⾥的客户未必是⼈,可能是浏览器,可能是APP。
这样想必你不明⽩,举例:你去饭店吃饭,坐下来后,服务员⼩妹来你点菜。你点了个宫保鸡丁,⼩妹就拿着你的点菜单都后厨。后厨的师傅打开⾷物储藏柜,到鸡丁,开炉⼦,放油,⼀顿爆炒,装盘。⼩妹端起盘⼦回到你的桌⼦。当然,如果⼩妹觉得你帅,说不定还会偷偷加个鸡腿给你;如果你碰巧是当年甩了⼩妹的前男友,说不定⼩妹会吐⼝⼝⽔在⾥⾯。
这⾥,你就是客户,你点菜就是发出请求(Request),⼩妹就是Controller,后厨就是 Model,⼩妹最后给的盘⼦及⾥⾯的内容就是View,⼩妹给你盘⼦就是响应(Respond)。Controller处理客户请求,反馈给Model。Model处理,返回数据(宫保鸡丁)给Controller(⼩妹)。⼩妹可以直接给你,也可以给你加鸡腿或吐⼝⽔后给你。最终,你得到了⼀盘吃的(View)。
Spring MVC就是个MVC框架,和Spring天⽣就集成。
MyBatis
⼀个帮你和数据库打交道的框架。帮你把数据库的表翻译成类,字段翻译成类的字段,记录翻译成对象。(当然这些全要靠你⾃⼰定义。)
这样做的后果就是,你可以像写java⼀样操作数据库了。什么打开JDBC,防⽌sql注⼊,不⽤考虑,MyBatis帮你搞定。
Spring中,通过简单的设置就可以集成MyBatis这个框架,所以会有SSM框架的说法。
如果我们把 SSM + 另外⼀些功能的框架看成⼀台台式电脑,主机上插了键盘、⿏标、显⽰器、优盘、⾳响……那么 Spring 框架好像是电脑的主机,Spring MVC类似于显⽰器(Web交互很漂亮,对不对),MyBatis好⽐是个硬盘(移动硬盘、优盘),其他的功能框架如安全框架Shiro 好⽐是个指纹登录器。这些东西是不是都是插主机上的?
三层架构
三层架构师指:视图层view,服务层service,持久层Dao,它们的功能是:
1.view层:⽤来接收⽤户请求的代码,⽐如请求如何分发;
2.service层:系统的业务逻辑主要写在这⾥,⽐如借书系统会有借书的业务;
3.Dao层:直接操作数据库的代码,之所以分Dao层,主要是可能相同的sql语句可能使⽤在⽐较多的地⽅,改动的时候可以理解为只改动⼀处即可。
为了降低耦合度,在这⾥,使⽤⾯向抽象编程,也就是上层对下层的调⽤,直接通过接⼝来完成,下层对上层的真正服务提供者,是下层实现的接⼝实现类,实现类是可以更换的,这就实现了层间的解耦合。
MVC与三层架构的区别
MVC架构⾥⾯的Controller以及View层合并在⼀起就是三层架构的View层,⽽MVC的Model层就包含了三层架构的Service层以及Dao层。
Java开发中常见包名的意义
Java:
bean 实体类,对应数据库中的表,构造⽅法,属性,getter setter,toString()
dao 持久层数据库增删改查
service 业务层
controller 控制层跳转哪⾥
resources:
mapper dao实现类mvc三层架构如何实现
l Spring的配置⽂档
db.properties 数据库连接信息
log4j.properties ⽇志配置⽂件
l 配置springmvc
webapp:
jsp等页⾯
web-inf
l 加载过滤器
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论