【发布时间】:2019-10-08 19:03:15
【问题描述】:
我正在构建一个 Sprint 启动应用程序,我在其中提出请求,然后得到响应。 在我提出请求之前,我需要转换我的数据。但是,对于要转换的同一个 Source 类,要转换的 Destination 类可能会有所不同。 示例:
public Request getTransformedRequest(Request, String typeTransformation) {
Request transformedRequest= mapper.map(request,Request.class);
return transformedRequest;
}
如果我没有使用转换器,而我只使用普通的推土机映射,我可以在我的 mapping.xml 中包含以下内容;
<mapping map-id="Type1">
<class-a>ClassA</class-a>
<class-b>ClassB</class-b>
</mapping>
<mapping map-id="Type2">
<class-a>ClassA</class-a>
<class-b>ClassC</class-b>
</mapping>
然后在我的代码中,对于同一个 Source 类,我可以使用映射 ID 进行切换;
ClassB mapper.map(request,Request.class,"Type1"); //Here ClassB extends Request
ClassC mapper.map(request,Request.class,"Type2"); //Here ClassC extends Request
我的问题,我不能对转换器做同样的事情。我想为同一个源类使用不同的转换器:
<convertertype="CustomConverterType1" >
<class-a>
ClassA
</class-a>
<class-b>
ClassB
</class-b>
</converter>
<converter type="CustomConverterType2" >
<class-a>
ClassA
</class-a>
<class-b>
ClassC
</class-b>
</converter>
所以,在我的场景中,我想选择(如在映射 id 示例中),我希望的转换器。 我非常感谢同样的帮助。在此先感谢。
【问题讨论】: