SpringMVC不同层的解释和联系

定义

entity层(model,pojo,bean)

主要是实体类的定义,对应于数据库的属性值,方便后面该类型对象的创建

dao层(持久层/mapper层)

dao层是也就是数据访问对象(data access object),仅仅是一个拥有方法名的面向对象的数据库接口,这些方法一般是对于数据库的操作方法。具体实现是在xml文件中,可以说是直接操作数据库,是数据库的邻居。Spring没有自己的持久层具体实现,而是利用dao来实现,这里不展开具体描述。

service层(业务层)

存放业务逻辑的处理,也可以认为是处理数据的逻辑,是对于数据库的操作,他有自己的接口和实现,那么和dao层又有什么区别呢,业务层,类似于数据库邻居的亲戚,你想要请用有权有势的人(操作数据库),那么你应该是利用邻居的关系,先去联系自己的亲戚,让和数据库关系更好的邻居来给自己铺垫,所以我们说业务层的实现是通过调用持久层的接口,同时,业务层也是中间的一层,意味着他还需要向他的boss(控制层)提供接口。

controller层(控制层)

又叫做控制器,顾名思义,作用是用来控制,控制什么呢?刚才我们说到业务层有很多业务逻辑的实现,既然都已经实现了难道就结束了吗,当然不是,我们通过控制层来接收前端的传来的参数,从而调用业务层的接口,实现具体的业务模块流程控制,控制的配置也同样是在Spring的xml配置文件里面,如:mapper的namespace,当然,控制器也不只是一个,电视有遥控器,游戏机有手柄,同样针对与具体的业务流程,会有不同的控制器。

调用关系

简单来说就是:控制层(主任)负责控制流程,调用手底下的业务层接口(班主任),然后业务层去调用持久层(学生),持久层去操作数据库(写作业)。

分层的作用

我们先来说代码的耦合,A类里面new一个B类对象,那么如果B类对象的内容进行了改变或者说B类没有了,那么A类里面的调用就需要改变,这是耦合,那么这样带来一些麻烦,庞大的工程中我如何保持我的一层不影响另外一层呢,所以我们引入解耦,淡化他们之间的联系,对于其中一层的改变不会影响到其他的层,就像插座,我提供一个接口,我不管你是充电手机还是电脑,对我是没有影响的,同样dao层无论操作的是MyBatis,JDBC,只要是提供接口,那么业务层就可以拿来直接用,这就是每一层接口存在的意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值