域,DAO和服务层

MCh*_*han 7 spring dao hibernate

我需要了解应该在Domain,DAO和Service层对象中的方法类型(在业务逻辑方面)之间的区别.

例如,如果我正在构建一个小型Web应用程序来创建,编辑和删除客户数据,据我所知,在Domain层对象中,我应该添加Get/Set Customers对象属性的方法,例如(getName,getDOB,setAddress, setPhone ...等).

现在我要学习的是我应该在DAO和服务层对象中放置什么方法.

提前感谢您的时间和精力.

lre*_*der 9

一般来说(不是Hibernate或Spring特定的):

DAO层包含查询和更新,以将您的域层保存到您的数据存储区(通常是关系数据库,但不一定是).使用接口将DAO从实际数据存储区中抽象出来.它不会经常发生,但有时您想要更改数据存储区(或使用模拟测试您的逻辑),并且接口使这更容易.这将有"save","getById"等方法.

服务层通常包含您的业务逻辑,并协调域层和DAO之间的交互.它将具有对您的特定域有意义的任何方法,例如"verifyBalance"或"calculateTotalMileage".


小智 7

DAO:"包装"方法,用于"包装"JPA或JDBC或SQL或noSQL调用或任何用于访问数据库系统的方法.

域:与单一类型的实体(域对象)相关的业务逻辑调用.

服务:业务逻辑调用与一组实体或一组相同类型的几个实体相关.

(我不确定英语,抱歉.......)

这意味着:服务层比Domain层"更大",通常靠近前端,经常调用或使用多个域对象.

域对象封装了域的一部分的大多数东西(这就是为什么它们被称为DO)

DAO只是技术性的,有时需要,有时候不需要.当使用真实域对象时,通常使用"存储库"来隐藏对数据库系统的访问,或者添加特殊的数据库功能或其他.

前端 - >服务方法1 - >做X类型的A,做类型X的B,列表