Spring Cloud Stream 默认自定义消息 headers

Spring Cloud Stream default custom message headers

当消息从方法 return 值生成时,有没有办法配置默认 Message<T> headers 值:

@Publisher(channel = "theChannelname")
public MyObject someMethod(Object param) {
    ...
    return myObject;
}

@SendTo("theChannelname")
public MyObject someMethod(Object param) {
    ...
    return myObject;
}

在上面的示例中,Message<MyObject> 将自动生成。

那么,如何控制默认消息的生成?

不是真的 - 假设是如果你 return 一个有效负载那么你就不太关心 headers。您可以使用方法 return a Message 并在其中添加您自己的 headers。

您可以通过方法参数的 @Header 注释来做到这一点:

@Publisher(channel="testChannel")
public String defaultPayload(String fname, @Header("last") String lname) {
  return fname + " " + lname;
}

http://docs.spring.io/spring-integration/reference/html/message-publishing.html#publisher-annotation