spring - 命令对象和DTO,有区别吗?

标签 spring spring-mvc grails

当我们在Grails甚至在Spring中谈到命令对象时,它们是否与数据传输对象相同?意思是,命令对象是否是DTO企业设计模式的实现示例?如果没有,有什么区别?

最佳答案

数据传输对象(DTO)是一个对象(简单的Java bean),可在任意两个层或进程之间承载数据。通常,您可能会引入/使用DTO层,并使用从外部Web服务或外部系统接收到的数据填充DTO bean。有关更多详细信息,请引用Martin Fowler's blog on Data Transfer Object

命令对象只是 spring(mvc)术语,它将html表单数据映射到Java Bean(form Bean)。在这里,Spring Dispatcher Servlet和帮助器类将数据从html表单映射到java bean。在Grails中,命令对象比AST转换等数据载体提供的服务更多。

总之,它们都是从一层到另一层的数据载体。

Spring中的命令对象是否是DTO企业设计模式的实现示例?

Yes, but the point to note is that the Spring Dispatcher servlet & helper classes populate the command object with html form data.

关于spring - 命令对象和DTO,有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40307821/

相关文章:

java - Spring security 或 BCrypt 算法哪一种适合帐户这样的项目?

spring-mvc - 在 Spring 中循环 JSTL 表单标签内的列表

mysql - GORM 是否存在以最大前缀开头的字段问题或 Float 字段存在问题

java - 如何处理 Spring 应用程序配置?

java - Handler处理失败;嵌套异常是 java.lang.NoClassDefFoundError : com/mongodb/MongoException$DuplicateKey

java - 为什么 WebApplicationContext 无法访问我的 spring 组件?

validation - 如何在Groovy中针对特定格式对字段进行验证

grails - Grails:findAllBy动态方法-高级排序属性

java - 带有微服务的 Spring REST 应用程序

java - spring Controller - 返回 map 而不是创建单独的对象