Selma v / s MapStruct v / s Model Mapper哪一个选择作为java映射框架。

时间:2017-12-05 13:30:05

标签: mapping

嗨, 我试图在我的项目中使用映射框架,但我无法决定选择哪一个,其中有映射框架。 Selma v / s MapStruct v / s Model Mapper映射框架?

请帮助我选择最佳功能和性能导向的框架。

4 个答案:

答案 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 的映射实现。