Java 映射器的可重用性
mapstruct是通过重用映射代码生成多个模型的正确工具吗 例如,我有一个输入类:Java 映射器的可重用性,java,mapstruct,Java,Mapstruct,mapstruct是通过重用映射代码生成多个模型的正确工具吗 例如,我有一个输入类: public class MySource { private String props; } 以及不同的目标类别 public class FooClass { private String foo; } public class BarClass { private String bar; } 和制图员 public abstract class FooClassMapper { @Ma
public class MySource {
private String props;
}
以及不同的目标类别
public class FooClass {
private String foo;
}
public class BarClass {
private String bar;
}
和制图员
public abstract class FooClassMapper {
@Mapping(source = "props", target = "foo")
public abstract FooClass mapFoo(MySource source)
}
public abstract class BarClassMapper {
@Mapping(source = "props", target = "bar")
public abstract BarClass mapBar(MySource source)
}
有没有一种方法可以通过使用MappingConfig、继承或其他方式避免使用多个映射器?您可以在单个接口中声明多个(不同)映射方法,例如
@Mapper
public interface MySourceMapper {
@Mapping(...)
FooClass mapToFoo(MySource source);
@Mapping(...)
BarClass mapToBar(MySource source);
}
这是一个很好的方法。另一种选择是使用
Mapper#uses
@FilipMapper。uses
不会解决OP的请求,以避免有多个映射器;你仍然需要两个映射器,即使其中一个可以利用另一个。你是对的@JimmyB,我错过了那部分。OP没有尝试任何用途,所以我也提到了它。也许其他人会对此感兴趣