【问题标题】:Why do I need mapstruct for when using Jhipster?为什么在使用 Jhipster 时需要 mapstruct?
【发布时间】:2021-03-27 23:48:11
【问题描述】:

当我阅读 mapstruct 文档时,他们说:MapStruct 是一个 Java 注释处理器,用于生成类型安全的 bean 映射类。

https://mapstruct.org/documentation/stable/reference/html/#introduction

这让我有了问题。为什么我需要mapstruct? Jhipster 使用它,我不知道他们为什么首先需要它?为什么需要在 Jhipster 中进行映射。

他们还提到 .... 与手动编写映射代码相比,MapStruct 通过生成繁琐且容易出错的代码来节省时间。所以它节省了时间,但它没有解释你为什么需要它,对吧?

谢谢。我希望他们可以根据这里写的疑问和解释修改文档。

【问题讨论】:

    标签: jhipster mapstruct


    【解决方案1】:

    https://www.jhipster.tech/using-dtos/ 中所述,JHipster 使用 MapStruct 生成用于将实体映射到 DTO 或从 DTO 映射实体的代码

    您可以通过将生成的 Mapper 类复制到源代码树中,然后手动进化它们来摆脱它。如果您不打算在项目引导之外使用 JHipster 和/或想要构建对 MapStruct 来说过于复杂的 DTO,这可能会很有用。

    一开始听起来可能需要更多工作,但它是简单的代码,无论如何您都需要在前端代码中做同样的事情。

    基本上,映射器是一种简单的服务,用于将实体映射到数据传输对象或从数据传输对象映射出一个实体。它不需要任何库来执行此操作,也不需要实现任何特定接口,您只需根据从 getter 获得的值调用 writer。

    如果您不想从头开始,假设您定义了一个Book 实体,您可以通过在您的target 目录中搜索MapStruct 生成的BookMapperImpl.java 类找到一个示例。然后,你可以把它复制到你的src目录下,去掉BookMapperImpl中的mapstruct导入,删除BookMapper接口并将BookMapperImpl重命名为BookMapper

    【讨论】:

      猜你喜欢
      • 2023-01-28
      • 2015-03-21
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多