映射器的可重用性
Reusability of mappers
mapstruct 是通过重用映射代码生成多个模型的正确工具吗?
例如,我有一个输入 class:
public class MySource {
private String props;
}
和不同的目标 classes
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);
}
mapstruct 是通过重用映射代码生成多个模型的正确工具吗?
例如,我有一个输入 class:
public class MySource {
private String props;
}
和不同的目标 classes
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);
}