目录
背景
最近公司的项目架构做调整,要求将项目中的数据访问由原来的Controller—>service—>dao三层更改为controller—>service—>domain—>dao四层,自己也是刚接触,查阅了很多博客和相关文档才有所了解,现在还不能真正体会到这样做的好处,下面就记录一下自己的学习内容。
分层调用结构图
分层定义及要求
dao层
操作单表,不涉及复杂逻辑,主要是表的增删改查操作,完全根据domain的要求来查询数据,会对每个要操作的数据库表定义一个dao,对具体的操作要定义一个类似函数说明。dao层方法仅供给domain层使用。dao包含两类文件:接口类、mybatis实现xml文件。
domain层
仅考虑非业务逻辑,例如过滤条件,放行或者返回,以及数据的处理,一个domain可以调用一个或者一组相关的dao层。domain层只能调用dao层的方法,不能调用其他domain、service、controller层方法。domain包含接口类和对应实现类。
service层
调用一个或者一组domain层,主要是展现需要开放出去的接口。具体的业务逻辑在此层实现。service层只能调用domain、service层方法,不能调用controller层方法。service层包含接口类和对应实现类。
controller层
负责具体的业务模块流程的控制,在此层里面要调用service层的接口来控制业务流。controller只能调用service层方法。