ModelMapper:从对象到对象的映射库

  1. ModelMapper的maven依赖

		<dependency>
		     <groupId>org.modelmappergroupId>
		     <artifactId>modelmapperartifactId>
		     <version>2.1.1version>
		 dependency>
  1. ModelMapper入口类
    ModelMapper这个工具的入口类就是ModelMapper,因此转换就需要从这个类入口.简单看下API
    1.addConverter() :顾名思义,添加转换器
    2.addMappings() :添加映射器
    3.createTypeMap() :创建A-B的转换器关系
    4.getConfiguration() :获取配置
    5.map() ;映射处理
  2. 简单Model-DTO转换
    1:地铁站实体类
/**
 * 地铁站实体类
 *
 * @author lizhangyu
 * @date 2019-08-15
 */
@Entity
@Table(name = "subway_station")
public class SubwayStation {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 所属地铁线id
     */
    @Column(name = "subway_id")
    private Long subwayId;

    /**
     * 站点名称
     */
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getSubwayId() {
        return subwayId;
    }

    public void setSubwayId(Long subwayId) {
        this.subwayId = subwayId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

2:房屋图片返回结果实体类

/**
 * 地铁站返回结果实体类
 *
 * @author lizhangyu
 * @date 2019-08-15
 */
public class SubwayStationDTO {

    private Long id;
    private Long subwayId;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getSubwayId() {
        return subwayId;
    }

    public void setSubwayId(Long subwayId) {
        this.subwayId = subwayId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
  1. 映射结果
    ModelMapper:从对象到对象的映射库_第1张图片
    ModelMapper:从对象到对象的映射库_第2张图片
  2. ModelMapper的优点
    ModelMapper解决了实体类之间的赋值,不需要在用get和set方法,而且如果类的属性过于庞大,则get方法和set的方法所占的代码行数过多,有了ModelMapper,我们直接通过映射一行代码就可以解决。

你可能感兴趣的:(Java后端)