spring 集成 java dsl:如何在 Simp 目标 header 中扩展 uri-variable
spring integration java dsl: how to expand a uri-variable in a Simp destination header
我混合使用 spring-mvc websocket 支持和 spring-integration java dsl。
我有一个集成流程负责使用 AbstractBrokerMessageHandler 向 websocket-stomp 订阅者发送消息。
目的地是 /topic/notifications/{tenantId},其中 tenantId 是我要发送给订阅者的有效负载的成员。
在spring-integrationxmldsluri-variable子元素中。
我想知道是否有类似的 java dsl 功能我错过了。
目前我在做类似的事情:
.enrichHeaders( h -> h.< BizData > headerFunction(SimpMessageHeaderAccessor.DESTINATION_HEADER ,
m -> UriComponentsBuilder.fromPath( "/topic/notifications/{tenantId}" )
.build( false )
.expand(m.getPayload().getTenantId() )
.toString();
有没有更优雅的方法呢?
我们将首先 class 添加对 Spring 集成模块的支持,具体取决于用户的优先级;我们还没有完成 websocket 支持。您可以通过查看 the packages.
查看哪些模块首先 class 支持
也就是说,正如您所发现的,没有 first class 支持并不意味着您不能在 DSL 中使用其他模块,只是一些配置有点复杂。
为了帮助我们确定工作的优先顺序,请打开 JIRA issue indicating what you'd like to see. Even better, consider contributing!!。
但是,对于像这样的简单用例,您可能会发现简单的 String.replaceAll("...")
比使用 UriComponentsBuilder
更简单。我不确定它是否更多 "elegant" 但它的代码更少。
我混合使用 spring-mvc websocket 支持和 spring-integration java dsl。
我有一个集成流程负责使用 AbstractBrokerMessageHandler 向 websocket-stomp 订阅者发送消息。
目的地是 /topic/notifications/{tenantId},其中 tenantId 是我要发送给订阅者的有效负载的成员。
在spring-integrationxmldsluri-variable子元素中。
我想知道是否有类似的 java dsl 功能我错过了。
目前我在做类似的事情:
.enrichHeaders( h -> h.< BizData > headerFunction(SimpMessageHeaderAccessor.DESTINATION_HEADER ,
m -> UriComponentsBuilder.fromPath( "/topic/notifications/{tenantId}" )
.build( false )
.expand(m.getPayload().getTenantId() )
.toString();
有没有更优雅的方法呢?
我们将首先 class 添加对 Spring 集成模块的支持,具体取决于用户的优先级;我们还没有完成 websocket 支持。您可以通过查看 the packages.
查看哪些模块首先 class 支持也就是说,正如您所发现的,没有 first class 支持并不意味着您不能在 DSL 中使用其他模块,只是一些配置有点复杂。
为了帮助我们确定工作的优先顺序,请打开 JIRA issue indicating what you'd like to see. Even better, consider contributing!!。
但是,对于像这样的简单用例,您可能会发现简单的 String.replaceAll("...")
比使用 UriComponentsBuilder
更简单。我不确定它是否更多 "elegant" 但它的代码更少。