# 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));
}
}
```