在任何项目中正确实施服务层和DTO概念

时间:2018-08-11 21:11:39

标签: java spring spring-boot spring-data-jpa

我正在遵循一些指南和教程来学习如何使用Spring Boot框架,并且我已经撰写了一些有关MVC和DAO设计模式的文章,但是信息有点模棱两可,有些示例使用类“ serviceObject”来访问“ repositoryObject”类中的方法,其他人只是直接使用“ repositoryObject”类,甚至在一些教程中,人们都为该对象创建新接口,同时创建JPARepository或任何其他实现存储库,所以我想从你们那里了解经验丰富的人,我应该如何实现设计模式?使用该框架的正确形式是什么?

几天前,另一边我发现实体和DTO不相同,并且它们的用途不同,实体将处理逻辑层和商务层到数据库之间的数据事务,但是DTO将位于负责在前端显示哪些信息,这是我的理解,但我对此表示怀疑,如果是那样的话,应如何实施?

因此,我请您,能否以孩子们可以理解的方式向我解释这些概念(苹果和一块板子,可能有ID,姓名和年龄的学生桌)?

通过我做的一个实践项目,它是:Data JPA,Web,Thymeleaf <-(虽然还不太清楚这是什么意思,但是在实践中我会学到的。)

谢谢。

2 个答案:

答案 0 :(得分:0)

在DAO层级别。您可以实现具有相同功能的JpaRepositoryCrudRepository。要么使用@ Repository之类的注释,但首先在依赖项管理器级别进行导入。 DTO的目标是更好地组织其代码,避免业务层过载。它允许使用其属性对特定对象进行操作,而无需对其进行修改。

答案 1 :(得分:0)

在阅读了很多内容并关注了很多信息之后,我意识到做出决定之前有很多事情要考虑。

在存储库和控制器之间使用服务层时(最佳实践表明我们应该这样做),您应该考虑以下几个方面:

  • 业务逻辑又大又复杂吗?
  • 您是否有查询数据库的复杂查询?

如果答案为,那么就不要变得复杂,也不要使用它(当时)。即使最佳实践表明我们应该使用该服务层

关于DTO,还有其他注意事项,DTO负责向View层提供数据并向View层检索数据,但是此数据作为实体从Service层获得,并转换为EntityDTO,反之亦然。基本上,DTO可以节省资源,提高性能,使将来在数据库或实体中的项目更改更容易维护,也适用于大型项目,但是对此非常了解。

我将指向这篇有助于我理解的帖子。

这个杰作将使您了解正确使用DTO的重要性。