我目前在集成 channel 上收到一个对象,类似于:
public class LargeObject {
private final String name;
private final Integer id;
}
我想要name
将其包装在我自己的对象中并将其发送到另一个 channel 。
所以通常我想以类似于 <integration:json-to-object-transformer>
的方式转换消息有效负载.
我可以用 <integration:service-activator>
来做到这一点,但我想知道是否有专门用于这项工作的组件?
谢谢
最佳答案
正确的组件是:
<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" />
关于java - 用于对象到对象转换的适当 Spring Integration 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12371514/