An open API service indexing awesome lists of open source software.

https://github.com/fuzhengwei/vo2dto

💱 IDEA 插件,解决对象转换问题。选定对象批量织入“x.set(y.get)”代码,帮助开发者自动生成vo2dto转换代码。
https://github.com/fuzhengwei/vo2dto

lombok vo2dto

Last synced: 3 months ago
JSON representation

💱 IDEA 插件,解决对象转换问题。选定对象批量织入“x.set(y.get)”代码,帮助开发者自动生成vo2dto转换代码。

Awesome Lists containing this project

README

        

# :currency_exchange: IDEA Plugin vo2dto

> 你好,我是小傅哥,[《重学Java设计模式》](https://item.jd.com/13218336.html) 图书作者,一线互联网 Java 工程师、架构师。[:pencil2: 虫洞栈,博主](https://bugstack.cn),[:memo: 关于我](https://bugstack.cn/md/other/guide-to-reading.html) 我做过的项目演示地址:[https://gaga.plus](https://gaga.plus)













一款用于帮助使用 IDEA 编写代码的研发人员,快速生成两个对象转换过程中所需要大量的 `x.set(y.get)` 代码块的插件工具.

| `对vo2dto感兴趣的,程序员👨🏻‍💻‍,来自这些国家和地区` |
|:---:|
| ![](/docs/_media/visits.png) |

## ⛳ 目录

- [特性](https://github.com/fuzhengwei/vo2dto#sparkles-%E7%89%B9%E6%80%A7)
- [使用](https://github.com/fuzhengwei/vo2dto#hammer-%E4%BD%BF%E7%94%A8)
- [安装](https://github.com/fuzhengwei/vo2dto#hammer_and_wrench-%E5%AE%89%E8%A3%85)
- [1. 在线安装](https://github.com/fuzhengwei/vo2dto#1-%E5%9C%A8%E7%BA%BF%E5%AE%89%E8%A3%85)
- [2. 手动安装](https://github.com/fuzhengwei/vo2dto#2-%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85)
- [迭代](https://github.com/fuzhengwei/vo2dto#-%E8%BF%AD%E4%BB%A3)
- [技术栈](https://github.com/fuzhengwei/vo2dto#alembic-%E6%8A%80%E6%9C%AF%E6%A0%88)
- [许可证](https://github.com/fuzhengwei/vo2dto#scroll-%E8%AE%B8%E5%8F%AF%E8%AF%81)

## ✨ 特性

1. 2个对象的转换操作,通过复制 X x 对象,转换给 Y y 对象
2. 允许使用 lombok 对象转换、lombok 和普通对象转换,对于 serialVersionUID 属性过滤
3. 支持类继承类,全量的对象转换操作
4. 含记忆功能的弹窗选择映射关系,支持全量对象、支持匹配对象、也支持空转换,生成一组set但无get的对象
5. 支持对于引入不同包下的同名类处理
6. 支持 Lombok.Builder 模式创建转换对象

## 🔨 使用

- 视频:[https://www.bilibili.com/video/BV13Y411h7fv](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 使用演示图|
|:---:|
| ![](/docs/_media/use-demo.png) |

👉示例代码 - 可直接复制验证

```java
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

public class ApiTest {

public void test_vo2dto(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;

}

}
```

- 支持 UserDTO userDTO = new UserDTO() 模型的,x.set(y.get)
- 支持 UserDTO userDTO 模式的,z.builder().x(y.get)

## 🛠️ 安装

### 1. 在线安装

| IDEA Plugin 搜索vo2dto直接在线安装即可|
|:---:|
| ![](/docs/_media/install.png) |

### 2. 手动安装

- 下载:[v2.5.5](https://github.com/fuzhengwei/vo2dto/releases/tag/v2.5.5)
- 安装:

| IDEA Plugin 手动安装,导入下载包|
|:---:|
| ![](/docs/_media/install02.png) |

## 🐾 迭代

- [x]【推荐】v2.5.5 支持类的内部类
- [x]【推荐】v2.5.4 新增Lombok Getter、Setter 检测
- v2.5.1 修复 Objects.requireNonNull 部分 idea 不支持该方法问题

👉显示更多

- v2.4.9 支持 Lombok Builder 模式
- v2.4.8 静态字段过滤

- v2.4.7

- 支持转换对象,鼠标定位到属性时候的类搜索和匹配
- 处理全局扫描访问 `GlobalSearchScope.allScope`

- v2.4.6

- 修改搜索对象范围,支持pom引入对象搜索
- 屏蔽 lombok 下 serialVersionUID 属性的生成

- v2.4.5

- 完善查找多包下同名类的引入和使用

- v2.4.4

- 支持在多个包下查找相似的名称

- v2.4.3

- 校验复制被转换对象的上下文关系

- v2.4.2

- 添加映射字段多选框

- v2.3.0

- 提供转换对象映射关系的弹窗提示,有多少个对象属性在转换

- v2.4.1

- 修复映射字段bug

- v2.4.0

- 优化映射关系
- 提供映射配置功能

- V2.2.2

- 通过步长计算,支持用户把光标定位到转换对象的属性上

- v2.2.0

- 支持Lombok生成策略
- 支持对象空转换
- 在兼容的Lombok中添加自定义get和set方法

- v2.1.0

- 复制对象a并在对象B上生成x.set(y.get)
- 在“对象B”属性上,也可以直接单击以生成x.set(y.get)
- 支持生成父对象的方法

- v1.0.0

- 初版,支持对象的复制和转换

## ⚗️ 技术栈

- Java
- IDEA Plugin SDK

## 📜 许可证

MIT

---

> GitHub [@fuzhengwei](https://github.com/fuzhengwei)  ·