1. 程式人生 > >微服務應用大行其道,我提供一個dto和entity轉換工具類,方便大家做轉換,少寫機械程式碼,多陪陪家人

微服務應用大行其道,我提供一個dto和entity轉換工具類,方便大家做轉換,少寫機械程式碼,多陪陪家人

微服務應用大行其道,我提供一個dto和entity轉換工具類,方便大家做轉換,少寫機械程式碼,多陪陪家人。

該工具類主要是對dozer進行了封裝,使用過程程式碼量極少,廢話少說,貼程式碼了

import java.util.ArrayList;
import java.util.List;

import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;

public class DtoEntityUtil {
    
    static Mapper mapper = new DozerBeanMapper();

    public static <D,E> E trans(D t,Class<E> clazz){
        if(t == null)
            return null;
        return mapper.map(t, clazz);
    }
    
    public static <D,E> List<E> trans(D[] ts,Class<E> clazz){        
        List<E> es = new ArrayList<E>();
        if(ts == null)
            return es;
        
        for(D d:ts) {
            E e = (E)trans(d,clazz);
            if(e != null)
                es.add(e);
        }
        
        return es;
    }
    
    
    public static <D,E> List<E> trans(List<D> ts,Class<E> clazz){
        List<E> es = new ArrayList<E>();
        if(ts == null )
            return es;
        for(D d:ts) {
            E e = (E)trans(d,clazz);
            if(e != null)
                es.add(e);
        }
        return es;
    }
    
}

舉例:

//下面兩段程式碼是將entity轉換成dto;分別是單個物件轉換和集合物件轉換;一般用於向consumer提供資料

//WorkeRecord是entity,從資料庫中獲取的物件

DtoEntityUtil.trans(workeRecord, WorkerRecordDTO.class);

//es是List集合,裡面的物件是WorkeRecord的例項

List<WorkerRecordDTO> ds = (List<WorkerRecordDTO>)DtoEntityUtil.trans(es, WorkerRecordDTO.class);

//================華麗分隔符==================

//下面例子是dto轉entity,一般用於向provider傳入物件

DtoEntityUtil.trans(menuDto, Menu.class);//將mentDto轉換成mentEntity

List<User> users = DtoEntityUtil.trans(ts, User.class);//將dto集合ts轉換成entityList users

 

程式碼