# MapStruct使用示例 **Repository Path**: ch-zms/map-struct ## Basic Information - **Project Name**: MapStruct使用示例 - **Description**: MapStruct使用示例 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-23 - **Last Updated**: 2022-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: 学习, Java ## README # MapStruct 学习记录 MapStruct是一个类对象转换的代码生成器,使用MapStruct,我们只需要创建接口,而该库会通过注解在编译过程中自动创建具体的映射实现 ## 🍃兄弟!虽然我把主要点都写了,但下载下来再看好吗 ## 🚀启动 1. pom.xml - 引入依赖 ```xml org.mapstruct mapstruct 1.4.2.Final ``` - 引入插件 ```xml org.apache.maven.plugins maven-compiler-plugin 3.5.1 11 11 org.projectlombok lombok 1.18.20 org.mapstruct mapstruct-processor 1.4.2.Final ``` ## 📚使用 ### 💐一、映射 创建转换接口类添加注解@Mapper ```java @Mapper public interface AppleConvert { AppleConvert INSTANCE = Mappers.getMapper(AppleConvert.class); /** * 苹果 -> 水果 * * @param apple Apple * @return Fruit */ Fruit appleToFruit(Apple apple); /** * 水果 -> 苹果 * * @param fruit Fruit * @return Apple */ Apple fruitToApple(Fruit fruit); /** * 不同字段名 Apple -> AppleDTO * @param apple Apple * @return AppleDTO */ @Mapping(source = "apple.name",target = "appleName") AppleDTO appleToAppleDTO(Apple apple); } ``` ### 🌲二、调用 ```java class MapStructApplicationTests { @Test void contextLoads() { Apple apple = new Apple(); apple.setName("苹果"); apple.setWeight("一斤"); System.out.println(AppleConvert.INSTANCE.appleToFruit(apple)); System.out.println(AppleConvert.INSTANCE.appleToAppleDTO(apple)); Fruit fruit = new Fruit(); fruit.setId(1); fruit.setName("苹果"); fruit.setWeight("半斤"); fruit.setColor("red"); System.out.println(AppleConvert.INSTANCE.fruitToApple(fruit)); } } ```