传输对象,Spring MVC,Architectural

时间:2016-06-10 15:07:15

标签: java spring spring-mvc jpa architecture

我的简单Spring MVC应用程序具有以下层:(0)具有普通JSP(1)控制器的Web层,(2)服务,(3)存储库,(4)模型。我使用Spring Data JPA作为存储库。我认为在我的场景中有数据传输对象(DTO)的原因是什么,因为客户端需要实体类的所有字段。它只会削减性能并导致开发工作重新打包所有内容。

我知道(a)DTO有助于解除层级,而(b)数据库表结构将从客户端隐藏,这对安全性非常有用原因。但是,(b)似乎不是我的应用程序中的问题,因为客户端需要所有数据。就层级解耦而言,实体类的任何变化也应该应用于DTO和客户端。

我会对您如何将实体作为模型属性提供给客户端而不是DTO感兴趣。还要提前感谢这些帖子。

1 个答案:

答案 0 :(得分:1)

Separation of model and view提供了许多好处,例如在不影响另一方的情况下自由修改两者。当然,在某些情况下,与您的一样,模型和视图都可以相同。