[英]MVC Structure for Web application in Spring?
使用Spring MVC开发Web应用程序。 之前,我使用的是控制器层,服务层(业务逻辑),模型层(实体)和DAO(DB)层。
但有人指出,我应该再介绍两层。 dto层,用于从前端和转换层收集数据,转换层将比dto转换为模型(实体)层对象。
现在我正在使用:
这样,我们可以使前端和后端数据保持不同。 请帮帮我,这对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.