java - java - 如何从Java中的现有DTO创建一个lite DTO?
问题描述
我有一个 dto,比如说MyDto
里面有 10 个字段。我想创建一个只有 3 个字段的 dto 的精简版本。我试过这个:创建一个新对象并将所需字段从旧对象复制到新对象,并将其他字段设置为空。我不喜欢只用 3 个字段制作一个新的 light dto。我可以在这里遵循哪些方法?
解决方案
我有同样的问题。就我而言,我以这种方式使用了 ModelMapper。在需要映射的类中:
@Autowired private ModelMapper modelMapper;
...
public LiteDTO convertToLiteDTO() {
MyDTO myDTO = new MyDTO();
return modelMapper.map(myDTO, LiteDTO.class);
}
并且,要在应用程序中配置 ModelMapper:
// MyBEConfig.java
import org.modelmapper.ModelMapper;
import org.springframework.context.annotation.Bean;
...
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
使用 Maven 安装 ModelMapper:
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.2</version>
</dependency>
您一定需要另一个“精简版”版本的 DTO。我认为你不能这样做。
推荐阅读
- html - 如何在引导程序 4 中的图像上写入文本
- class-diagram - 如何从用例创建类图
- c# - 使用 API 在另一个进程的控制台中写入(不重定向它的标准输入)
- javascript - Vuejs如何在组件中获取自定义定义对象
- csv - sqlite3 导入 csv 文件
- vue.js - 不同组件的脚本元素上的b-modal弹出窗口,如何显示模态?
- c# - Asp.Net Html.editorFor foreign id 转换为来自不同表的名称
- ios - 外观ForTraitCollection:返回零
- c - 没有收到 ARP 请求,wireshark 无法读取 arp 头
- java - 如何从 JMeter JMS 订阅者响应正文中提取和比较字节