一款 IDEA 插件幫你優(yōu)雅轉(zhuǎn)化 DTO、VO、BO、PO、DO
回復(fù)架構(gòu)師獲取資源
大家好,我是你們的朋友架構(gòu)君,一個會寫代碼吟詩的架構(gòu)師。
'javajgs.com';
https://juejin.cn/post/6952848675924082718
https://juejin.cn/post/6844904046097072141
https://zhuanlan.zhihu.com/p/2646753951. 定義方法出入?yún)?/span>
2. 光標定位方法內(nèi),使用快捷鍵ALT+INSERT(WIN) 、 command + N(mac) ,或者右鍵鼠標選擇Generate,彈出生成選項框后,選擇genCopyMethod,代碼就生成好了



@Data
public?class?UserVO {
????private?String?name;
????private?Date?entryDate;
????private?String?userId;
????private?List roleList;
????private?RoomVO room;
????public?static?UserVO convertToUserVO(UserDTO item) {
????????if?(item == null) {
????????????return?null;
????????}
????????UserVO result = new?UserVO();
????????result.setName(item.getName());
????????result.setEntryDate(item.getEntryDate());
????????result.setUserId(item.getUserId());
????????List roleList = item.getRoleList();
????????if?(roleList == null) {
????????????result.setRoleList(null);
????????} else?{
?????result.setRoleList(roleList.stream().map(UserVO::convertToRoleVO).collect(Collectors.toList());
????????}
????????result.setRoom(convertToRoomVO(item.getRoom()));
????????return?result;
????}
????public?static?RoomVO convertToRoomVO(RoomDTO item) {
????????if?(item == null) {
????????????return?null;
????????}
????????RoomVO result = new?RoomVO();
????????result.setRoomId(item.getRoomId());
????????result.setBuildingId(item.getBuildingId());
????????result.setRoomName();
????????result.setBuildingName();
????????return?result;
????}
????public?static?RoleVO convertToRoleVO(RoleDTO item) {
????????if?(item == null) {
????????????return?null;
????????}
????????RoleVO result = new?RoleVO();
????????result.setRoleId(item.getRoleId());
????????result.setRoleName(item.getRoleName());
????????result.setCreateTime(item.getCreateTime());
????????return?result;
????}
}
@Data
public?class?UserDTO {
????private?String?name;
????private?Date?entryDate;
????private?String?userId;
????private?List roleList;
????private?RoomDTO room;
}
@Data
public?class?RoleVO {
????private?String?roleId;
????private?String?roleName;
????private?LocalDateTime createTime;
}
@Data
public?class?RoleDTO {
????private?String?roleId;
????private?String?roleName;
????private?LocalDateTime createTime;
}
@Data
public?class?RoomVO {
????private?String?roomId;
????private?String?buildingId;
????private?String?roomName;
????private?String?buildingName;
}
@Data
public?class?RoomDTO {
????private?String?roomId;
????private?String?buildingId;
} 1、Spring BeanUtils?(copyProperties)
2、Cglib ?BeanCopier (copyProperties)
3、Apache BeanUtils (copyProperties)
4、Apache PropertyUtils?(copyProperties)
5、Dozer
6、mapstruct
7、JSON 序列化 再反序列化
1. mapstruct
@Mapper(componentModel = "spring",uses = {RoleVOMapper.class,RoomVOMapper.class})
public?interface?UserMapper?{
????UserConverter INSTANCE = Mappers.getMapper(UserConverter.class);
????
????UserVO toUserVO(UserDTO userDTO);
}
@Mapper(componentModel = "spring")
public?interface?RoleMapper?{
????RoleVO toRoleVO(RoleDTO roleDTO);
}
@Mapper(componentModel = "spring")
public?interface?RoomMapper?{
????RoomVO toRoomVO(RoomDTO roomDTO);
}
public?class?Main?{
????public?static?void?main(String[] args)?{
????????UserDTO user = ;
????????UserVO userVO = UserMapper.INSTANCE.toUserVO(user);
????????userVO.getRoomVO().setRoomName("大廳1");
????????userVO.getRoomVO().setBuildingName("尚德樓");
????}
}@Data
public?class?UserVO?{
????private?String name;
????private?Date entryDate;
????private?String userId;
????private?List roleList;
????private?RoomVO room;
????public?static?UserVO convertToUserVO(UserDTO item)?{
????????if?(item == null) {
????????????return?null;
????????}
????????UserVO result = new?UserVO();
????????BeanUtils.copyProperties(item,result);
????????List roleList = item.getRoleList();
????????if?(roleList == null) {
????????????result.setRoleList(null);
????????} else?{
?????result.setRoleList(roleList.stream().map(UserVO::convertToRoleVO).collect(Collectors.toList());
????????}
????????result.setRoom(convertToRoomVO(item.getRoom()));
????????return?result;
????}
????public?static?RoomVO convertToRoomVO(RoomDTO item)?{
????????if?(item == null) {
????????????return?null;
????????}
????????RoomVO result = new?RoomVO();
????????BeanUtils.copyProperties(item,result);
????????
????????result.setRoomName();
????????result.setBuildingName();
????????return?result;
????}
????public?static?RoleVO convertToRoleVO(RoleDTO item)?{
????????if?(item == null) {
????????????return?null;
????????}
????????RoleVO result = new?RoleVO();
????????BeanUtils.copyProperties(item,result);
????????return?result;
????}
} 
文章來源:https://blog.csdn.net/zhangdaiscott/article/details/109057686
這些年小編給你分享過的干貨
2.優(yōu)質(zhì)ERP系統(tǒng)帶進銷存財務(wù)生產(chǎn)功能(附源碼)
3.優(yōu)質(zhì)SpringBoot帶工作流管理項目(附源碼)
5.SBoot+Vue外賣系統(tǒng)前后端都有(附源碼)

轉(zhuǎn)發(fā)在看就是最大的支持??
評論
圖片
表情
