spring integration java dsl:如何在Simp目标头中扩展uri变量

时间:2015-06-15 19:12:45

标签: spring-integration

我使用了spring-mvc websocket支持和spring-integration java dsl。

的混合

我有一个集成流程负责使用AbstractBrokerMessageHandler向websocket-stomp订阅者发送消息。

目的地是/ topic / notifications / {tenantId},其中tenantId是我要发送给订阅者的有效负载的成员。

在spring-integration xml dsl uri-variable subElement中。

我想知道我错过了类似的java dsl功能。

目前我做的事情如下:

.enrichHeaders( h -> h.< BizData > headerFunction(SimpMessageHeaderAccessor.DESTINATION_HEADER , 
   m -> UriComponentsBuilder.fromPath( "/topic/notifications/{tenantId}" )
                            .build( false )
                            .expand(m.getPayload().getTenantId() )
                            .toString();

有更优雅的方式吗?

1 个答案:

答案 0 :(得分:1)

我们正在为用户优先考虑向DSL添加对Spring Integration模块的一流支持;我们还没有做过websocket支持。通过查看the packages,您可以看到哪些模块具有一流的支持。

也就是说,正如您所发现的,没有第一类支持并不意味着您不能在DSL中使用其他模块,只是部分配置需要更多参与

为了帮助我们确定工作的优先顺序,请打开JIRA issue,说明您希望看到的内容。更好的是,请考虑contributing!!

但是,对于这样的简单用例,您可能会发现比使用dim(m) == c(3,3)更简单的String.replaceAll("...")。我不确定它是否更“优雅”,但代码更少。