简单Dozer的使用

DBC 1.3K 0
温馨提示

看文章前,你需要知道的是,Dozer已经不在更新了,可以从他的开源地址中看到,所以新项目中最好还是不要使用啦,避免遇到没人碰过的坑!这里仅记录一下简单的用法,推荐使用如下:MapStruct、Orika、ModelMapper、JMapper,其中性能最好的就是:JMapper,不知道后面会不会发生改变

添加依赖

		<!--dozer -->

		<dependency>
			<groupId>net.sf.dozer</groupId>
			<artifactId>dozer</artifactId>
			<version>5.5.1</version>
		</dependency>

一个Dozer的VO对象

import lombok.Data;
import org.dozer.Mapping;

/**
 * @author DBC
 * @date 2022/4/29 17:08
 */
@Data
public class UserDozerVO {

    @Mapping("id")
    private Integer dozerId;
    private String name;
    private String devName;

}

原始对象

/**
 * @author DBC
 * @date 2022/4/29 11:50
 */
@Data
public class UserPageVO {

    private Integer id;

    private String name;

    private String age;

    private String devName;

    private Date devTime;

}
温馨提示

我们这里可以看到,我们的id特地起名字不一样,Dozer通过注解的形式也可以实现,还有其他的形式,如果需要再自己去官网看啦!

直接运行测试

    /**
     * 综合测试
     *
     * @param page 页码
     * @param size 个数
     * @return
     */
    @GetMapping("DozerTest")
    public JsonData DozerTest(int page, int size, int id) {

        Page<UserPageVO> questionStudent = tbUserMapper.selectuserlistpage(new Page<>(page, size), id);
        //关键代码
        List<UserDozerVO> userDozerVOS = questionStudent.getRecords().stream().map(obj->beanUserDozerVO(obj)).collect(Collectors.toList());

        return JsonData.buildSuccess(userDozerVOS);
    }

    private UserDozerVO beanUserDozerVO(UserPageVO obj) {
        DozerBeanMapper mapper = new DozerBeanMapper();
        UserDozerVO userDozerVO = mapper.map(obj,UserDozerVO.class);
        return userDozerVO;
    }

简单Dozer的使用插图

从上图中我们可以很清晰的看到,我们想要的已经完全的映射了。一种简单的使用![aru_42]

发表评论 取消回复
表情 图片 链接 代码

分享