使用Spring MVC开发一个Web应用程序。 早先我用控制器层,服务层(业务逻辑),模型层(实体)和DAO(DB)层。
但有人指出,我要介绍两个层即。 DTO层用于从前端收集数据和转化层,其将比DTO转换成模型(实体)层对象。
现在,我使用:
- 控制器层(其将发送数据到DTO层)
- DTO层(其将发送其数据到转换层)
- 变换层(用于将DTO层对象到实体层对象)
- 服务层(业务逻辑)
- 实体层(POJO其将与数据库映射)
- DAO(将使用实体对象存储数据库)
通过这种方式,我们可以保持前端和后端的数据不同。 请帮助我,这是Spring MVC的一个结构合理?
有关于MVC一个有趣的问题答案线程在这里: https://softwareengineering.stackexchange.com/questions/127624/what-is-mvc-really
一些关键点要记住设计应用程序应该是当; 分层和松耦合。
在你的情况下,有额外转换层并不一定使我们的休息MVC模式。 这是你在MVC推出只是一个附加层; 设计策略,随后许多。
DTO仅仅是一个封装数据模式。 通常使用在你的控制器中返回,但你并不需要总是创建DTO,您可以使用您的实体这一点。 我只是用一个DTO当我需要不同的数据结构,即任何实体的支持,例如像报告。
关于你的项目层型号/道/服务/控制器它是正确的,我强烈建议你这本书领域驱动设计 ,它会帮助你建立你的软件架构!
但有人指出,我要介绍两个层即。 DTO层用于从前端收集数据和转化层,其将比DTO转换成模型(实体)层对象。
不,这是不正确。 你应该只使用那些需要的层。
早先我用控制器层,服务层(业务逻辑),模型层(实体)和DAO(DB)层。
这也是不正确的。 有MVC的没有严格的定义是有规律可循的,但它的使用只在一层称为视图层 ,或在其他方面的表现层 。 凡模型,视图和控制器驻留。 还有一个叫做服务层层,这是可选的。 然后持久层 ,在这一层,你建模你的对象,并将其保存在数据库中或其他地方。 没有更多的层是必要的,简单的Web应用程序。
关于模型的几句话,这是一组要坚持或视图层使用显示/存储的数据类。 在这里,你可以用它玩,因为有人喜欢使用它自己的模型来显示/存储的数据,和其他人更喜欢自己的模式坚持它。 这些转变通常是在持续性或服务完成,或这两层。 请记住,所有层的松耦合给对方,但你可以从一层传输数据豆到另一个和背部没有任何问题。 在分离状态或其他豆类等的DTO实体是可以传递和层之间烘烤这样的对象的实例。 并没有额外的层是必要的。