有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于ObjecttoObject转换的java-Spring集成组件

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

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

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

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

我可以用一个<integration:service-activator>来完成,但我想知道是否有专门用于该工作的组件

谢谢


共 (1) 个答案

  1. # 1 楼答案

    合适的组件是

    <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" />