用于对象到对象转换的正确Spring集成组件

时间:2012-09-11 14:02:24

标签: java spring spring-integration

我目前正在集成渠道上收到一个类似的对象:

public class LargeObject {
    private final String name;
    private final Integer id;
}

我想从中获取name,将其包装在我自己的对象中并将其发送到另一个频道。

因此,我通常希望以类似于<integration:json-to-object-transformer>的方式转换消息有效负载。

我可以用<integration:service-activator>来做,但是如果有专门用于这项工作的组件,我就会徘徊?

谢谢,

1 个答案:

答案 0 :(得分:4)

适当的组件是

<transformer/>

假设你的新对象上有一个构造函数,并且你的LargeObject上有一个getName()方法,你可以使用带表达式的简单变换器...

<int:transformer expression="new foo.OtherObject(payload.name)"
    input-channel="foo" output-channel="bar" />

如果你需要更复杂的东西,只需用这种方法制作一个POJO ......

public OtherObject transformIt(LargeObject input) {...}

并使用......

<int:transformer ref="transformerPojo"
    input-channel="foo" output-channel="bar" />