【问题标题】:Is There any Alternatives to DTO in Spring Boot 2.0Spring Boot 2.0 中是否有 DTO 的替代品
【发布时间】:2019-10-20 13:11:09
【问题描述】:

我有一个后端 api 和一个使用这个 api 的前端客户端(Angular 应用程序),我必须从数据库实体(几乎 100 个)重新定义许多 DTO。我想知道是否有比使用 Transformer 更简单的方法来转换我的实体的替代方法。

【问题讨论】:

  • 不,spring boot 没有魔法。我可以建议您使用 MapStruct 或者您可以编写自己的转换器 - BeanUtils 绝对可以帮助您。或者你可以使用 ResultTransformer 查看这篇文章vladmihalcea.com/…
  • 事实上,我倾向于在 myRestController 中返回一个新对象,其中仅包含我想基于原始实体发送的字段。

标签: spring-boot spring-data-jpa


【解决方案1】:

您可以使用 Jackson API 将 Entity 对象转换为 DTO 或任何 POJO 类对象。请检查以下 URL 以获取代码示例。 https://www.thetechnojournals.com/2019/10/entity-object-conversion-to-dto-object.html

【讨论】:

  • 事实上我正在使用 ObjectMapper (2.3.5),但我无法让 mapper.convert 方法工作,有什么想法吗?
  • 您能分享一下您进行转换的代码吗?如果您也可以在该类中显示导入,那将会很有帮助。
  • 我刚尝试使用 2.3.5 版本,它开始抱怨运行时缺少类。如果你迁移到更高版本的 jackson 会更好,比如 2.9.x。
  • 知道我用的是Spring Boot 2.1.6,是不是版本不匹配?
  • 我使用的是 spring boot 2.1.9 和 jackson-databind 2.9.9。还尝试了 Spring boot 2.1.6 和相同的 jackson 2.9.9。在这两种情况下,它都工作正常。您是明确声明杰克逊 2.3.5 依赖项还是由于其他一些依赖项而出现。在这种情况下,您可以排除该版本并添加 jackson 2.9.9 依赖项。希望它应该工作。另外请检查您是否使用“com.fasterxml.jackson.databind.ObjectMapper”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多