Java中DAO层、Service层和Controller层的区别

DAO层:
DAO层叫数据访问层,全称为Data Access Object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。Dao层主要做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。

Service层:
Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。Service层主要负责业务模块的应用逻辑应用设计。

Controler层:
Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

View层:
View层与控制层结合比较紧密,需要二者结合起来协同开发。View层主要负责前台jsp页面的显示。

通过例子来解释:

Controller像是服务员,顾客点什么菜,菜上给几号桌,都是它的职责. Service是厨师,Action送来的菜单上的菜全是它做的.
Dao是厨房的小工,和原材料打交道的事情全是它管。
相互关系是,小工(Dao)的工作是要满足厨师(Service)的要求,厨师要满足服务员(Controller)转达的客户(页面用户)的要求,服务员自然就是为客户服务喽。

总结:
个人理解DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是Controller层之下的,因而 Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。

你可能感兴趣的:(SpringBoot,java,开发语言,后端)