我使用了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();
有更优雅的方式吗?
答案 0 :(得分:1)
我们正在为用户优先考虑向DSL添加对Spring Integration模块的一流支持;我们还没有做过websocket支持。通过查看the packages,您可以看到哪些模块具有一流的支持。
也就是说,正如您所发现的,没有第一类支持并不意味着您不能在DSL中使用其他模块,只是部分配置需要更多参与
为了帮助我们确定工作的优先顺序,请打开JIRA issue,说明您希望看到的内容。更好的是,请考虑contributing!!。
但是,对于这样的简单用例,您可能会发现比使用dim(m) == c(3,3)
更简单的String.replaceAll("...")
。我不确定它是否更“优雅”,但代码更少。