将查询参数转换为Set

时间:2017-10-11 12:45:14

标签: spring-integration

我在将我的Spring Integration入站网关中的CSV格式的查询参数转换为java.util.Set时遇到了问题。

我的出站网关添加了?ids=[ID_1, ID_2]等参数。

我的入站网关将整个参数作为单个元素读取到像["ID_1, ID_2"]这样的集合中。

我已经创建了自己的静态帮助器方法来将String转换为Set但是想知道是否有办法在Spring Integration中隐式执行转换?

感谢您的帮助!

我的代码如下。

出站网关:

<int-http:outbound-gateway 
url="MY_URL?ids={ids}&amp;foo={foo}"
request-channel="myChannel"
http-method="GET"
message-converters="myConverter"
header-mapper="myMapper"
expected-response-type="MyDto">
  <int-http:uri-variable name="ids" expression="payload"/>
  <int-http:uri-variable name="foo" expression="headers.foo"/>
</int-http:outbound-gateway>

入站网关:

<int:service-activator 
input-channel="myChannel"
expression="@'myService'.getStuff(payload.ids, headers.foo)"/>

<int-http:inbound-gateway 
id="myGateway"
request-channel="myChannel"
path="MY_URL"
message-converters="myConverter"
header-mapper="myMapper"
supported-methods="GET">
  <int-http:header name="foo" expression="#requestParams.foo"/>
</int-http:inbound-gateway>

修改

这看起来会解决我的问题:https://docs.spring.io/spring-integration/docs/4.3.12.RELEASE/reference/html/messaging-endpoints-chapter.html#payload-type-conversion

1 个答案:

答案 0 :(得分:0)

考虑使用var CoinStack = require('coinstack-sdk-js') var accessKey = 'c7dbfacbdf1510889b38c01b8440b1'; var secretKey = '10e88e9904f29c98356fd2d12b26de'; var client = new CoinStack(accessKey, secretKey); client.getBalance(address, function(err, balance) { console.log('balance', balance) });

org.springframework.util.StringUtils.commaDelimitedListToSet()