繁体   English   中英

Spring的Web应用程序的MVC结构?

[英]MVC Structure for Web application in Spring?

使用Spring MVC开发Web应用程序。 之前,我使用的是控制器层,服务层(业务逻辑),模型层(实体)和DAO(DB)层。

但有人指出,我应该再介绍两层。 dto层,用于从前端和转换层收集数据,转换层将比dto转换为模型(实体)层对象。

现在我正在使用:

  1. 控制器层(它将数据发送到DTO层)
  2. DTO层(它将其数据发送到转换层)
  3. 转换层(用于将dto层对象转换为实体层对象)
  4. 服务层(业务逻辑)
  5. 实体层(将与数据库映射的POJO)
  6. DAO(将使用实体对象存储数据库)

这样,我们可以使前端和后端数据保持不同。 请帮帮我,这对Spring MVC是否合适?

MVC上有一个有趣的问题解答线程: https : //softwareengineering.stackexchange.com/questions/127624/what-is-mvc-really

设计应用程序时要记住的一些关键点是: 分层和松散耦合。

在您的方案中,拥有附加的转换层不一定会使我们打破MVC模式。 它只是您在MVC中引入的另一层。 许多人遵循的设计策略。

DTO只是封装数据的一种模式。 通常,通常在控制器中返回它,但是您不必总是创建DTO,您可以为此使用实体。 当我需要任何实体支持的不同数据结构(例如报告)时,我只使用Dto。

关于您的项目层Model / Dao / Service / Controller是正确的,我强烈建议您阅读《 域驱动的设计 》一书,它将帮助您构建软件架构!

但有人指出,我应该再介绍两层。 dto层,用于从前端和转换层收集数据,转换层将比dto转换为模型(实体)层对象。

不,这是不正确的。 您应该只使用必要的图层。

之前,我使用的是控制器层,服务层(业务逻辑),模型层(实体)和DAO(DB)层。

这也是不正确的。 MVC没有严格定义,它是一种模式,但是它仅用于称为视图层的一层 ,或用其他术语表示层 模型,视图和控制器所在的位置。 还有另一层称为服务层 ,这是可选的。 然后是持久层 ,在这一层中,您将对对象进行建模并将其保存在数据库或其他地方。 简单的Web应用程序不需要更多的层。

关于模型,这是您要保留或在视图层中用于显示/存储数据的一组类。 在这里您可以使用它,因为有人喜欢使用它自己的模型来显示/存储数据,而其他人喜欢使用他们自己的模型来保存它。 这些转换通常在持久性或服务中,或在两个层中进行。 请记住,所有层之间都是松散耦合的,但是您可以将数据bean从一层传输到另一层,然后再传输回去,而不会出现问题。 处于分离状态的实体或其他Bean(例如DTO)就是可以在层之间传递和烘焙的此类对象的示例。 并且不需要其他层。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM