Spring Cloud Stream Apps - 在步骤之间传递信息

时间:2018-04-30 19:58:35

标签: spring spring-boot spring-cloud-stream spring-cloud-dataflow

有人可以建议我在SCDF管道的步骤之间传递元数据的方法吗? 以下是我试图解决的一些用例:

  1. 使用'file'源时,文件详细信息(如名称,目录,大小等)会传递到下一步。
  2. 我希望在流程步骤中创建的某些元数据传递到以下步骤。 (此元数据与有效负载分开)
  3. 我希望有一种方法可以在兔子或kafka邮件标题中发送这些详细信息。

1 个答案:

答案 0 :(得分:0)

您可以/当然应该使用Message标头。 请记住,您可以控制处理程序方法的返回值。如果你的处理程序方法返回POJO,那么框架将创建一个Message来复制某些标题等。但是,在你的情况下,如果你想控制进入Message的所有东西(包括标题),你只需要定义处理程序方法返回消息(见下文):

@StreamListener(..)
@SendTo(..)
public Message<?> handle(String str) {
  . . .
  return MessageBuilder.withPayload(..).setHeader(..).setHeader(..).build();
}