【SpringBoot】MapStruct实现优雅的数据复制
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
// 定义源数据类型
class Source {
private String name;
private int age;
// 省略其他属性和方法
}
// 定义目标数据类型
class Target {
private String fullName;
private int age;
// 省略其他属性和方法
}
// 使用MapStruct注解定义映射器接口
@Mapper
public interface MyMapper {
MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);
@Mapping(source = "name", target = "fullName")
Target sourceToTarget(Source source);
}
// 使用映射器
public class ExampleUsage {
public static void main(String[] args) {
Source source = new Source();
source.setName("John");
source.setAge(30);
Target target = MyMapper.INSTANCE.sourceToTarget(source);
// 此时target的fullName属性将会是"John",age属性将会是30
}
}
这个例子展示了如何使用MapStruct来实现从一个简单的Source
对象到Target
对象的映射。MyMapper
接口定义了一个方法sourceToTarget
,它将Source
对象的name
属性映射到Target
对象的fullName
属性,并将age
属性保持不变。在main
方法中,我们创建了一个Source
实例,调用映射器方法后,得到了一个新的Target
实例,其中包含了转换后的属性。
评论已关闭