作者:小傅哥
博客:https://bugstack.cn
沉澱、分享、成長,讓自己和他人都能有所收穫!😄
哈嘍,大家好我是技術UP主小傅哥。
如果你擔心維護成本和性能考量,不想使用 BeanUtils.copyProperties
複製對象,也不想大面積的增加配置文件使用 MapStruct
。而是隻想要要手寫效果的 x.set(y.get)
模型。那麼請立刻在 IDEA 中安裝插件 vo2dto v2.5.1 最新版本。截止到目前小傅哥開發的這款插件已經有 8.1k 安裝量!
IDEA Plugin vo2dto 是一款用於幫助使用 IntelliJ IDEA 編寫代碼的研發人員,快速生成兩個對象轉換過程中所需要大量的 x.set(y.get)
代碼塊的插件工具。在最新 v2.5.1 版本中已支持 Lombok.Builder 模式,讓使用可絲滑得嘞!
文末提供了此插件的源碼地址,你可以針對使用優化提交PR,以後那麼多人的使用,都會看見你的貢獻💐。
✨ 特性
- 2個對象的轉換操作,通過複製 X x 對象,轉換給 Y y 對象
- 允許使用 lombok 對象轉換、lombok 和普通對象轉換,對於 serialVersionUID 屬性過濾
- 支持類繼承類,全量的對象轉換操作
- 含記憶功能的彈窗選擇映射關係,支持全量對象、支持匹配對象、也支持空轉換,生成一組set但無get的對象
- 支持對於引入不同包下的同名類處理
- 支持 Lombok.Builder 模式創建轉換對象
🛠️ 安裝
1. 在線安裝
IDEA Plugin 搜索vo2dto直接在線安裝即可 |
---|
2. 手動安裝
IDEA Plugin 手動安裝,導入下載包 |
---|
🔨 使用
- 視頻:https://www.bilibili.com/video/BV13Y411h7fv -
視頻內有完整的使用介紹和插件設計
- 描述:你需要複製被轉換 X x = new X() 中的 X x 部分,無論它是方法入參還是實例化或者是接口回值,接下來鼠標定位到轉換對象 Y y 上,可以定位到
類 大Y
、或者屬性 小y
,這樣我就可以知道你要做到是X的對象的屬性值,轉換到Y對象的屬性值上。接下來幫你快速生成全部的y.set(x.get)
代碼片段。
IDEA Plugin vo2dto 使用演示圖 |
---|
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
public class ApiTest {
/**
* 普通模式
*/
public void test_vo2dto01(UserVO user) {
UserDTO userDTO = new UserDTO();
userDTO.setUserId(user.getUserId());
userDTO.setUserNickName(user.getUserNickName());
userDTO.setUserHead(user.getUserHead());
}
/**
* lombok Builder 模式
*/
public void test_vo2dto02(UserVO user) {
UserDTO userDTO = UserDTO.builder()
.userId(user.getUserId())
.userNickName(user.getUserNickName())
.userHead(user.getUserHead())
.build();
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
static class UserDTO {
private String userId;
private String userIdx;
private String userNickName;
private String userHead;
private int page;
private int rows;
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
static class UserVO {
private Long id;
private String userId;
private String userNickName;
private String userHead;
private String userPassword;
private Date createTime;
private Date updateTime;
}
}
- 注意;v2.5.1 版本已支持了 Lombok Builder 模式,方便使用 Lombok 的夥伴創建對象。如圖使用方式即可完成創建過程。
🤝 共建
源碼:https://github.com/fuzhengwei/vo2dto - 你可以Fork工程,瞭解這套組件源碼,對使用過程中所需的優化和擴展,提交你的代碼。那麼下次發版就會帶上你的貢獻了💐