嗨, 我试图在我的项目中使用映射框架,但我无法决定选择哪一个,其中有映射框架。 Selma v / s MapStruct v / s Model Mapper映射框架?
请帮助我选择最佳功能和性能导向的框架。
答案 0 :(得分:2)
我在寻找利用注释处理器的解决方案时遇到过类似情况。我会选择Selma或MapStruct。有点类似的代码生成器。与两者一起玩,但与MapStruct一起使用。 SO中的类似问题可以帮助您 - Java mapping: Selma vs MapStruct
github中一个将对象基准测试到对象映射器框架的项目顶部有Selma和MapStruct - https://github.com/arey/java-object-mapper-benchmark
答案 1 :(得分:0)
根据Java 8 Stream API和lombok
注释处理器库,我不再使用此映射框架。我通过实现spring框架的Converter
接口(package org.springframework.core.convert.converter.Converter
)来创建自己的映射器
@Component
public class ProductToProductDTO implements Converter<Product, ProductDTO> {
@Override public ProductDTO convert( Product source ) {
ProductDTO to = ProductDTO.builder()
.name( source.getName())
.description( source.getDescription() )
.tags(source.getTags().stream().map(t -> t.getTag().getLabel()).collect( Collectors.toList()))
.build();
return to;
}
}
@Builder //lombok annotation to create Builder class
@Data //lombok annotation to create getters & setters
@AllArgsConstructor //required for @Builder
public class ProductDTO {
private String name;
private String description;
private List<String> tags;
}
答案 2 :(得分:0)
当您使用here时,可以找到要映射的最常用框架之间的完整比较。在此链接中,您可以找到基准比较,如何使用每个框架等。 我决定使用MapStruct是因为它易于使用且速度如此之快。
答案 3 :(得分:0)
Baeldung 的帖子很有趣,但它更多的是框架列表而不是建议(顺便说一下,我们可以理解他解释每个框架的方式)。
我实际上正在搜索一些经验回报,但目前,我更喜欢使用 mapstruct 和每个 objectDTO 的映射实现。