如何在弹簧集成变压器中替换消息有效载荷

时间:2016-01-13 09:10:31

标签: spring-integration

我正在使用Spring Integration申请。我有一个Transformer,它接受​​一个文件对象作为消息有效负载,并返回一个具有java pojo作为有效负载的GenericMessage。 例如。我的transform方法接受参数为Message<?>,现在我正在使用GenericMessage<List<JavaPOJO>>创建新消息以返回消息。

我的问题是,如何更改传入邮件的有效负载? 因为如果我们正在创建新消息,那么之前的消息仍将存在于内存中,这将导致内存泄漏。 请帮帮我

1 个答案:

答案 0 :(得分:1)

消息是不可变的设计;你无法改变有效载荷(虽然有效载荷本身可能是也可能不是永久性的。

没有“内存泄漏” - 这就是垃圾收集器的用途 - 未引用的对象会被自动删除。

另外,一般来说,你不应直接与GenericMessage打交道;你的变压器可以有一个POJO签名......

public MyObject transform(File file) { 
    ...
}

让框架处理所有消息传递方面。