首页 > 解决方案 > 转换模型的最佳方法

问题描述

我的 Web 应用程序有控制器层,它应该从外部服务运行一些操作并发送 ExternalServiceDTO。我的控制器层与 ControllerDTO 一起使用。我有 ControllerDTO 的域模型 - 它是带有域服务 DomainModelService 的 DomainModel。

转换模型的最佳方法是什么?我看到 2 个选项

  1. ControllerDTO -> DomainModel -> ExternalServiceDTO 这样我们首先转换为域模型,然后再准备外部 dto。外部 dto 将从 DomainModelService 创建。

  2. ControllerDTO -> ExternalServiceDTO 这样,我们只是从控制器 dto 准备外部 dto

请指教

标签: javaspringmodel-view-controllerservicearchitecture

解决方案


您可以使用库模型映射器。

<dependency>
    <groupId>org.modelmapper</groupId>
    <artifactId>modelmapper</artifactId>
    <version>2.3.4</version>
</dependency>

要将 DTO 转换为实体,您可以使用以下命令:

      private Entity toEntity(DTO dto) throws ParseException {
          Entity entity = modelMapper.map(dto, Entity.class);
          return entity;
     }

在您的控制器上,您应该通过以下方式注入 Mapper:

     @Autowired
     private ModelMapper modelMapper;

推荐阅读