Spring integration Spring集成-服务激活器-方法签名

Spring integration Spring集成-服务激活器-方法签名,spring-integration,Spring Integration,我有一个一般性问题。我们正在将一些旧代码升级到spring integration的v4.1.3版。假设我们有一个服务激活器,它接收Foo类型的域对象,并在输出通道上返回相同的对象(在更改该对象的某些属性之后) 我们现有的代码有如下签名。这是正确的惯例吗?如果我不需要头,我可以直接返回我的有效负载,框架会将其包装成消息吗 public Message<Foo> computeValue(Foo payload, @Headers Map<String, Object> h

我有一个一般性问题。我们正在将一些旧代码升级到spring integration的v4.1.3版。假设我们有一个服务激活器,它接收Foo类型的域对象,并在输出通道上返回相同的对象(在更改该对象的某些属性之后)

我们现有的代码有如下签名。这是正确的惯例吗?如果我不需要头,我可以直接返回我的有效负载,框架会将其包装成消息吗

public Message<Foo> computeValue(Foo payload, @Headers Map<String, Object> headerMap) { 
   //... 
   return MessageBuilder.withPayload(payload).copyHeaders(headerMap).build();
}
公共消息计算值(Foo有效负载,@Headers-Map-headerMap){
//... 
返回MessageBuilder.withPayload(payload).copyHeaders(headerMap.build();
}

是的,您不需要这样做。更重要的是,这是毫无意义的,因为在使用ServiceActivator的情况下,框架会独立于您的工作将请求头填充到回复消息中


所以,如果你不需要在这个问题上做一些具体的逻辑,就不要在意标题。< / P>好的,再次感谢ARTEM,一如既往!重复您所说的内容,以我的理解:只需执行“返回有效负载”,框架仍将保留所有头并将有效负载转换为消息。不是转换,而是包装。使您的对象成为回复消息的

有效负载