dromara::mapstruct-plus-solon-plugin
此插件,由社区成员(脑袋困掉了)贡献,详情见:代码仓库。版本已纳入 solon-parent 管理
<dependency>
<groupId>org.dromara.solon-plugins</groupId>
<artifactId>mapstruct-plus-solon-plugin</artifactId>
</dependency>
1、描述
该插件提供了 MapStructPlus 的 Solon 实现
2、使用说明
添加依赖后,还需要添加 "maven-compiler-plugin" 的配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</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>
</annotationProcessorPaths>
<compilerArgs>
<arg>
-Amapstruct.defaultComponentModel=solon
</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
3、简单应用
@Component
public class Demo {
@Inject
private Converter converter;
public 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();
}
}
更多内容可以参照: 快速开始 | MapStructPlus
基本使用等同于 SpringBoot 方式,区别有两点:
- 获取
Converter
实例时,需要用@Inject
注解。 - 在 maven-compiler-plugin 中,需要增加 compilerArgs:
-Amapstruct.defaultComponentModel=solon