Spring Cloud Stream 路由器应用

Spring Cloud Stream router app

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

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

我真的希望我的路由器也有一个 HashMap 负载。否则,我不知道如何编写我的 SpEL 表达式。我早些时候学习了如何 ,所以当我在 Spring Cloud Dataflow 中部署路由器时,我尝试通过以下方式设置它:

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

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

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