View层:顾名思义,主要是前端的一些显示页面(jsp,html等)
Model层:数据库实体层,也称Entity层
一般数据库一张表对应 一个实体类,类属性同表字段一一对应。model通常也说是view的核心,也就是指视图的数据。
Controller层:控制层,控制业务逻辑
controller层负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端。
Service层:业务层,控制业务
Service层是业务逻辑层,负责业务模块的应用设计。Service层的设计,先设计接口,接着设计实现类,然后可以通过在应用中调用Service接口来处理业务。业务的实现具体要调用到已经定义的Dao接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性
Dao层:持久层,主要对数据库进行操作
Dao层是数据访问层,负责与数据库进行联络的一些任务封装在此,Dao层的设计首先是设计Dao接口,然后就可以通过模块调用此接口来进行数据业务的处理,而不必关心此接口的具体实现类是哪个类。简单来说,Dao层就是提供对数据库操作的方法,SQL语句通常写在mapper文件。
Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Contrller层中的类调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。
实现逻辑:View层跳转到Controller层,Controller层调用Service接口,转到对应业务实现类(service接口实现类),业务实现类调用Dao接口,转到数据库操作实现类(Dao接口实现类),最后就是对数据库的操作。
即:View–>Controller–>Service接口–>Service实现类–>Dao接口–>Dao接口实现类–>数据库
如有错误,欢迎补充完善