天天看點

微服務應用大行其道,我提供一個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

代碼量是不是很少~~~

轉載于:https://my.oschina.net/godson2003/blog/3102151