安利通过Mapstruct这个神器,它可以代替来
BeanUtil
进行DTO、VO、PO之间的转换。它使用的是 Java 编译期的注释处理器机制,说白了它是一个代码生成器,而不是你手动进行类型转换期间的取值操作。
它给项目都使用了很多新鲜的代码,之前发现了很多鱼的时间,用过的好。
@Mapper(componentModel = "spring")
public interface AreaMapping {
List<AreaInfoListVO> toVos(List<Area> areas);
}
就这么几行把一个PO的集合变成了VO的集合。
// spring bean
@Autowired
AreaMapping areaMapping
// 转换源 areas
List<Area> areas = ……;
// 转换目标 vos
List<AreaInfoListVO> vos = areaMapping.toVos(areas)
换成你手写,起码得五分炷香的尝试。
这样写还是爽,每次都要挂的Mapper类。
转换器
Spring框架提供了一个Converter<S,T>
接口:
@FunctionalInterface
publi