从域对象生成 DTO 和映射器
2022-09-03 05:33:49
我有很多java域对象需要转换为DTO。
请不要从反模式的事情开始,域对象之所以如此,是因为历史悠久,我无法修改它们(或者不要太多,见下文)。
所以,当然,我们已经过了手动完成所有这些工作的时代。我环顾四周,推土机似乎是DTO映射的首选框架。
但。。。我真正想要的是:在DTO中注释我想要的类和字段,并运行一个生成DTO和映射器的工具。
这听起来是不是太不合理了?
这样的工具已经存在了吗?
我有很多java域对象需要转换为DTO。
请不要从反模式的事情开始,域对象之所以如此,是因为历史悠久,我无法修改它们(或者不要太多,见下文)。
所以,当然,我们已经过了手动完成所有这些工作的时代。我环顾四周,推土机似乎是DTO映射的首选框架。
但。。。我真正想要的是:在DTO中注释我想要的类和字段,并运行一个生成DTO和映射器的工具。
这听起来是不是太不合理了?
这样的工具已经存在了吗?
请考虑签出 ModelMapper。
它与Dozer和其他公司的不同之处在于,它最大限度地减少了智能映射对象模型所需的配置量。在需要配置的地方,ModelMapper 提供了一个重构安全 API,该 API 使用实际代码来映射属性和值,而不是使用字符串引用或 XML。
查看 ModelMapper 网站了解更多信息:
您可能对MapStruct感兴趣,它是JavaBeans映射器的代码生成器。你必须实现源模型(例如您的域对象)和目标模型(例如DTO),MapStruct会生成类型安全且快速的代码,用于在这些模型之间进行映射(免责声明:我是这个项目的作者)。