rest - Spring框架中的DAO、DTO和Service层是什么?

标签 rest design-patterns architecture software-design

我正在使用 spring 和 hibernate 编写 RESTful 服务。我在互联网上阅读了很多资源,但他们并没有澄清我的疑问。请详细解释一下Spring框架中的DAODTOService层是什么?以及为什么在 Spring 中需要使用这些层来开发 RESTfull API 服务。

最佳答案

首先,这些概念与平台无关,并且并非 Spring 框架或任何其他框架所独有。

<小时/>

数据传输对象

DTO 是在进程之间传送数据的对象。当您使用远程接口(interface)时,每次调用它的成本都很高。因此,您需要减少调用次数。解决方案是创建一个可以保存调用的所有数据的数据传输对象。它需要可序列化才能通过连接。通常在服务器端使用汇编器在 DTO 和任何域对象之间传输数据。往往是很少的 不仅仅是一堆字段以及它们的 getter 和 setter。

<小时/>

数据访问对象

数据访问对象抽象并封装了对 数据源。 DAO 管理与数据源的连接 获取并存储数据。

DAO 实现了使用数据源所需的访问机制。 数据源可以是持久存储(例如 RDBMS),也可以是通过 RESTSOAP 访问的业务服务。

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/

相关文章:

algorithm - 大多数二进制组合来自 4 位,每位只有一个变化

ios - swift : "Mixing in"属性

php - PHP中的高额付款处理架构

java - 解析: Unauthorized in REST API

java - 未找到媒体类型 = application/json 的 JAX RS MessageBodyWriter

REST Servlet 正在开发中,但在远程 Tomcat 上

php - 电子商务网站 build 需要注意哪些问题?

asp.net - 如何使用 ASP.Net Web API 发送键列表并返回键/值列表?

c# - .Net 应用程序使用的文件放在哪里

c# - 处理合并的业务和表示代码的最佳方式?