Spring Cloud Stream路由器应用程序

时间:2018-01-14 04:01:46

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

我一直在使用Spring Cloud Stream App Starters中的router sink,我对内容类型有疑问。

我正在向路由器发送JSON字符串,我想写一个SpEL表达式来确定路由。但是,即使我通过修改项目中的JUnit测试用例来运行它,"有效负载"显示为字符串,而不是解析JSON。当为过滤器处理器运行JUnit测试用例时,同样在Spring Cloud Stream App Starters中,我需要做的就是在字符串中传递有效的JSON,并且有效负载是LinkedHashMap。 (常规字符串,例如" Hello,world!"使有效负载显示为String类型。)

我真的希望我的路由器也有HashMap有效负载。否则,我无法弄清楚如何编写我的SpEL表达式。我之前学到了如何set a content type on Spring Cloud Stream,所以当我在Spring Cloud Dataflow中部署路由器时,我尝试通过以下方式设置它:

stream deploy --name router-flow --properties "app.router.spring.cloud.stream.bindings.input.content-type=application/json"

但是,有效负载仍会显示一个字符串。我哪里错了?

1 个答案:

答案 0 :(得分:1)

您可以使用#jsonPath() SpEL function - 它自动注册以供Stream应用使用。