San*_*ark 13 java dto spring-boot
现在正在研究JAVA平台的Spring Boot。
我面临的一个问题是如何区分 DTO、VO、Entity、Domain 和 Model 之间的区别。
老实说,这一切看起来都太相似了,无法区分。
我已经检查了一些有关“DTO 和 VO 之间的差异”之类的 stackoverflow 答案。
然而,我仍然想知道他们在使用 Spring Boot 的开发人员方面有何不同。
Sta*_*sev 25
double值),并且可以使用这些原语来比较值对象。他们没有数据库 ID。它们有助于用与我们特定领域相关的更多面向对象的类替换原语。为了熟悉这些,您应该阅读:
DTO(数据传输对象):
是用于在层与层之间传输数据的容器。
当您使用远程接口时,每次调用的成本都很高,因此应减少调用次数。解决方案是创建一个可以保存调用的所有数据的数据传输对象。它需要可序列化才能通过连接。通常在服务器端使用汇编程序在 DTO 和任何域对象之间传输数据。它通常只不过是一堆字段以及它们的 getter 和 setter。
Java enum。
值对象的标识基于其状态而不是其对象标识,并且是不可变的。现实世界的示例是 Color.RED、Color.BLUE、SEX.FEMALE 等。
领域模型:
包含所有实体和值对象。还有一些其他类型的类,具体取决于您使用的分类。
Model:
定义模型属性的持有者,主要用于向模型添加属性。
ModelMap:
是 Model 的扩展,能够在映射和链式方法调用中存储属性。
ModelAndView:
是模型和视图的持有者;它允许在一个返回值中返回模型和视图。
Model、ModelMap 和 ModelAndView 用于在 Spring MVC 应用程序中定义模型。
DAO(数据访问对象)或存储库:
数据访问对象抽象并封装了对数据源的所有访问。DAO 管理与数据源的连接以获取和存储数据。
DAO 实现了使用数据源所需的访问机制。数据源可以是持久存储(例如 RDBMS),也可以是通过 REST 或 SOAP 访问的业务服务。
DAO 抽象了 Service 对象的底层数据访问实现,以实现对数据源的透明访问。该服务还将数据加载和存储操作委托给 DAO。
服务:
AService Layer从连接客户端层的角度定义了应用程序的边界及其可用操作集。
它封装了应用程序的业务逻辑,在其操作的实现中控制事务并协调响应。
尽管将业务逻辑放在这里是 EJB 1.x 和 2.x 时代引入的反模式。最好将业务相关的功能放入域模型中。了解贫血与丰富模型:贫血架构 - 测试的敌人
在了解 Spring Boot 架构之前,您必须了解其中存在的不同层和类。Spring Boot分为四层,如下:
表示层:
表示层处理HTTP请求,将JSON参数转换为对象,并对请求进行身份验证并将其传输到业务层。简而言之,它由视图(即前端部分)组成。
业务层:
业务层处理所有业务逻辑。它由服务类组成并使用数据访问层提供的服务。它还执行授权和验证。
持久层和数据库层:
持久层包含所有存储逻辑并将业务对象与数据库行进行转换。这也是执行 CRUD(创建、检索、更新、删除)操作的地方。
这些只是文字,对于它们的确切含义还没有达成普遍共识。
它们在不同的项目中具有不同的含义,加入项目的一部分就是学习这些项目特定的定义。
此外,这些词的定义是重叠的,因为它们不是“一次性”发明的,而是传统上用于有影响力的书籍、博客等/
例如:
要点:
| 归档时间: |
|
| 查看次数: |
22099 次 |
| 最近记录: |