![a30ef2b81b0a77b15a5f52dfd5d7d798.png](https://i-blog.csdnimg.cn/blog_migrate/4367c5d7eac139db35de1b6ae9985e5f.jpeg)
我们在开发的过程中对于领域进行了分层,像是VO/DTO/BO/DAO等,这样分层的好处是看到实体对象的名称就可以知道实体类对应的功能,但是同时也给开发带来了不便,就是各种对象的转换,如果一个对象有几个字段,我们直接调用get set方法即可,如果要是有十几个字段或者更多呢?可能还会涉及到类型的转换,如果这样就会导致满屏幕的get set方法,不仅感觉很low,而且不符合软件的精神——不要重复造轮子。下面给大家推荐一款比较好用的插件,他可以用来完成实体类之间的转换工作,并且可以自定义转换方法-MapStruct。
准备工作:
Maven配置,需要我们在pom文件中添加以下引用
1.2.0.Finalorg.mapstructmapstruct-jdk8${org.mapstruct.version}org.mapstructmapstruct-processor${org.mapstruct.version}
需要注意的是如果项目中使用了swagger,需要放到swagger的上面,不然运行会出错
普通用法:
@Mapper(componentModel = "spring")// 方便通过注解的方式使用public interface AccessToOpenApiInfoMapper {/** 映射器的实例,可以通过这个调用相应的方法,这个可以不用要,是线程安全的可以安心使用*调用的例子代码:*OpenApiInfo openApiInfo = AccessToOpenApiInfoMapper .INSTANCE.from( access );*/AccessToOpenApiInfoMapper INSTANCE = Mappers.getMapper(AccessToOpenApiInfoMapper.class);@Mappings({@Mapping(source = "value