域,DAO和服务层

时间:2013-05-31 17:21:04

标签: spring hibernate dao

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

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

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

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

2 个答案:

答案 0 :(得分:9)

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

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

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

答案 1 :(得分:7)

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

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

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

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

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

域对象封装了域的一部分的大部分内容(这就是为什么它们被称为D.O.)

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

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