Feign调用服务的时候,sql语句中的分号变成了逗号

因为业务需求,将多个sql语句写到一个String里面用分号隔开,然后用Feign调用服务,打断点在服务方,发现传过来的参数分号变成了逗号,有遇到过类似情况的吗

好像没啥代码可贴的,服务方的controller层第一行拿到参数,也没做改动,分号就已经变成了逗号

feign.template.QueryTemplate
这个类把带分号的queryString里的参数用split处理成了数组,然后你传往下一个服务的时候,用string接受的话,会用逗号给你拼接成字符串。


    /* covert the comma separated values into a value query string */
    List<String> resolved = Arrays.stream(values.split(COLLECTION_DELIMITER))
        .filter(Objects::nonNull)
        .filter(s -> !UNDEF.equalsIgnoreCase(s))
        .collect(Collectors.toList());

    if (!resolved.isEmpty()) {
      return this.collectionFormat.join(name, resolved, this.getCharset()).toString();
    }

也就是说,feign预设了使用者如果是用传参带了分号过来的,他认为你传的是Collection,而不是String

确定是纯string而不是把执行的sql拿出来?因为一条sql执行的终结尾部是以分号为准。但如果转成了分号那就用分号转换吧。

我也遇到这个问题了,需要接收到部分前端Html代码,标签里style带的 ; 还有空格: 的;,都被转换成了逗号,接收参数的时候,String变为了String[]。

有没有解决啊

大哥急急急 求助