mapstract

Posted lqblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mapstract相关的知识,希望对你有一定的参考价值。

什么mapSturct

mapSturct 是一个生成类型安全, 高性能且无依赖的 JavaBean 映射代码的注解处理器(annotation processor)。通过动态生成代码实现,使代码易于调试和美观,

引入POM

   <properties>
       <org.mapstruct.version>1.2.0.CR1</org.mapstruct.version>
    </properties>
    <dependencies>
        <!--mapStruct依赖-->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-jdk8</artifactId>
            <version>${org.mapstruct.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <version>${org.mapstruct.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

与lombok冲突解决

clean install就可以看到对应的实现类

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${org.mapstruct.version}</version>
                        </path>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

        </plugins>
    </build>

与Spring整合

//此注解在自动生成实现类会打上@Comment注解 我们只需要让Spring扫描就行了
@Mapper(componentModel = "spring")
public interface MemberGradeConvert {
    public MemberGradeEntity editReqDtOToPo(EditReqDtO editReqDtO);
}

简单使用

以上面为例自动在targer目录生成实现类

@Component
public class MemberGradeConvertImpl implements MemberGradeConvert {
    public MemberGradeConvertImpl() {
    }

    public MemberGradeEntity editReqDtOToPo(EditReqDtO editReqDtO) {
        if (editReqDtO == null) {
            return null;
        } else {
            MemberGradeEntity memberGradeEntity = new MemberGradeEntity();
            memberGradeEntity.setId(editReqDtO.getId());
            memberGradeEntity.setName(editReqDtO.getName());
            memberGradeEntity.setPoints(editReqDtO.getPoints());
            memberGradeEntity.setDiscountRate(editReqDtO.getDiscountRate());
            memberGradeEntity.setStatus(editReqDtO.getStatus());
            memberGradeEntity.setMerchantId(editReqDtO.getMerchantId());
            return memberGradeEntity;
        }
    }

}

 

以上是关于mapstract的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器