Spring云流应用程序-在步骤之间传递信息
有谁能建议我在SCDF管道的各个步骤之间传递元数据的方法吗? 以下是我试图解决的一些用例:Spring云流应用程序-在步骤之间传递信息,spring,spring-boot,spring-cloud-stream,spring-cloud-dataflow,Spring,Spring Boot,Spring Cloud Stream,Spring Cloud Dataflow,有谁能建议我在SCDF管道的各个步骤之间传递元数据的方法吗? 以下是我试图解决的一些用例: 使用“文件”源时,文件详细信息(如名称、目录、大小等)将传递到下一步 我希望将在流程步骤中创建的一些元数据传递到以下步骤。(此元数据与有效负载分开) 我希望有一种方法可以在rabbit或kafka消息头中发送此类详细信息。您当然可以/应该使用消息头。 请记住,您控制处理程序方法的返回值。如果您的处理程序方法返回POJO,那么框架将从中创建一条消息,复制某些头等。但是,在您的情况下,如果您希望控制进入消息(
我希望有一种方法可以在rabbit或kafka消息头中发送此类详细信息。您当然可以/应该使用消息头。 请记住,您控制处理程序方法的返回值。如果您的处理程序方法返回POJO,那么框架将从中创建一条消息,复制某些头等。但是,在您的情况下,如果您希望控制进入消息(包括头)的所有内容,则只需定义返回消息的处理程序方法(见下文):
@StreamListener(…)
@发送到(…)
公共消息句柄(字符串str){
. . .
返回MessageBuilder.withPayload(..).setHeader(..).setHeader(..).build();
}
这是很好的信息。非常感谢。如果使用入门应用程序file source,如何将文件信息传递到下一步?我意识到,我只需要使用handler方法的参数以及org.springframework.messaging.Message.Message类型以及@oleg Zhurakousky推荐的输出类型就可以了。谢谢您文件源的1.3.0.RELEASE是否可能有一个bug不发出文件名和其他头属性?(我使用FileReadingMode作为“内容”)这当然是可能的,但鉴于2.0.0.RELEASE是最新的版本,并且包含许多改进,我建议继续使用它。
@StreamListener(..)
@SendTo(..)
public Message<?> handle(String str) {
. . .
return MessageBuilder.withPayload(..).setHeader(..).setHeader(..).build();
}