https://www.mapstruct.plus/https://www.mapstruct.plus/
# 博主技术栈如下 springboot:2.4.5 lombok:1.8.20 mapstruct-plus:1.3.4 knife4j:4.0.0
目录
一、添加依赖(谨防依赖冲突)
二、如果依赖下不下来,要在maven的setting文件中加入腾讯云的镜像
三、 实战测试(将User转成UserDto)
一、添加依赖(谨防依赖冲突)
<properties><java.version>1.8</java.version><mapstruct-plus.version>1.3.4</mapstruct-plus.version></properties>
<dependency><groupId>io.github.linpeilie</groupId><artifactId>mapstruct-plus-spring-boot-starter</artifactId><version>${mapstruct-plus.version}</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.0.0</version><exclusions><exclusion><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId></exclusion></exclusions></dependency>
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source> <!-- 这里根据自己的需要进行切换 --><target>1.8</target> <!-- 这里根据自己的需要进行切换 --><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></path><path><groupId>io.github.linpeilie</groupId><artifactId>mapstruct-plus-processor</artifactId><version>${mapstruct-plus.version}</version></path><path><groupId>org.projectlombok</groupId><artifactId>lombok-mapstruct-binding</artifactId><version>0.2.0</version></path></annotationProcessorPaths></configuration></plugin></plugins></build>
二、如果依赖下不下来,要在maven的setting文件中加入腾讯云的镜像
<mirror><id>nexus-tencentyun</id><mirrorOf>*</mirrorOf><name>Nexus tencentyun</name><url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>
三、 实战测试(将User转成UserDto)
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;@Data
// 只需在User类上加上注解即可
@AutoMapper(target = UserDto.class)
public class User {private String username;private int age;private boolean young;
}
import lombok.Data;@Data
public class UserDto {private String username;private int age;private boolean young;
}
import com.ciih.penetration.test.User;
import com.ciih.penetration.test.UserDto;
import io.github.linpeilie.Converter;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
public class QuickStartTest {@Autowiredprivate Converter converter;@Testpublic void test() {User user = new User();user.setUsername("jack");user.setAge(23);user.setYoung(false);UserDto userDto = converter.convert(user, UserDto.class);System.out.println(userDto); // UserDto{username='jack', age=23, young=false}assert user.getUsername().equals(userDto.getUsername());assert user.getAge() == userDto.getAge();assert user.isYoung() == userDto.isYoung();User newUser = converter.convert(userDto, User.class);System.out.println(newUser); // User{username='jack', age=23, young=false}assert user.getUsername().equals(newUser.getUsername());assert user.getAge() == newUser.getAge();assert user.isYoung() == newUser.isYoung();}}