0

我目前在集成通道上接收到一个对象,类似于:

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

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

所以通常我想以类似于<integration:json-to-object-transformer>.

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

谢谢,

4

1 回答 1

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" />
于 2012-09-11T14:19:45.000 回答