我正在使用 spring 和 hibernate 编写 RESTful 服务。我在互联网上阅读了很多资源,但他们并没有澄清我的疑问。请详细解释一下Spring框架中的DAO、DTO和Service层是什么?以及为什么在 Spring 中需要使用这些层来开发 RESTfull API 服务。
最佳答案
首先,这些概念与平台无关,并且并非 Spring 框架或任何其他框架所独有。
<小时/>数据传输对象
DTO
是在进程之间传送数据的对象。当您使用远程接口(interface)时,每次调用它的成本都很高。因此,您需要减少调用次数。解决方案是创建一个可以保存调用的所有数据的数据传输对象
。它需要可序列化才能通过连接。通常在服务器端使用汇编器在 DTO 和任何域对象之间传输数据。往往是很少的
不仅仅是一堆字段以及它们的 getter 和 setter。
数据访问对象
数据访问对象
抽象并封装了对
数据源。 DAO
管理与数据源的连接
获取并存储数据。
DAO 实现了使用数据源所需的访问机制。
数据源可以是持久存储(例如 RDBMS
),也可以是通过 REST
或 SOAP
访问的业务服务。
DAO
抽象了 Service
对象的底层数据访问实现
启用对数据源的透明访问。 Service
还委托(delegate)
将数据加载和存储到 DAO
的操作。
服务
Service
对象正在执行的工作
应用程序需要为您正在使用的域执行操作。它涉及基于输入和的计算
存储的数据,验证来自演示文稿的任何数据,并准确找出哪些数据
要调度的源逻辑,具体取决于从演示文稿接收到的命令。
服务层
定义了应用程序的边界及其可用操作集
连接客户端层的角度。它封装了应用程序的业务逻辑,控制
事务并在执行其操作时协调响应。
推荐引用文献
Martin Fowler 有一本关于常见应用程序架构模式的好书,名为 Patterns of Enterprise Application Architecture 。还有,Core J2EE Patterns值得一看。
关于rest - Spring框架中的DAO、DTO和Service层是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35078383/