我正在使用Spring Integration
申请。我有一个Transformer
,它接受一个文件对象作为消息有效负载,并返回一个具有java pojo作为有效负载的GenericMessage
。
例如。我的transform
方法接受参数为Message<?>
,现在我正在使用GenericMessage<List<JavaPOJO>>
创建新消息以返回消息。
我的问题是,如何更改传入邮件的有效负载? 因为如果我们正在创建新消息,那么之前的消息仍将存在于内存中,这将导致内存泄漏。 请帮帮我
答案 0 :(得分:1)
消息是不可变的设计;你无法改变有效载荷(虽然有效载荷本身可能是也可能不是永久性的。
没有“内存泄漏” - 这就是垃圾收集器的用途 - 未引用的对象会被自动删除。
另外,一般来说,你不应直接与GenericMessage
打交道;你的变压器可以有一个POJO签名......
public MyObject transform(File file) {
...
}
让框架处理所有消息传递方面。