1

我正在尝试使用 jaxrs 合同解决 Feign 接口上的 Spring 占位符:

@FeignClient(value = "myClient"
    , url = "${server.url}"
    , configuration = MyFeignConf.class)
public interface MyClient {

@GET
@Path("${server.querypath}")
@Produces("application/json")
JsonNode olaTvQuery(@QueryParam("nbResults") int nbResults)

}

但是发现只有server.url通过SpringBoot的占位符填充机制才能解决。${server.querypath}未解析并GET作为文字值给出。

有人这样做吗?我应该打开功能请求吗?感谢您的回答。

4

1 回答 1

3

由于注释将 URL 映射到方法,因此它具有特定的语法以允许引用路径变量等功能。例如:

@Path("/user/{id}")
public Response getUser(@PathParam("id") int userId) {
    // ... 
}

而且由于该$字符被允许出现在 URL 中,Jersey(JAX-RS) 实际上正在查看您所写的内容@Path("<some path that happens to contain a $>{and a path variable goes here}"),这就是事情变得模棱两可并且很难跟踪的地方,因此 spring 不会干扰映射字符串。

于 2018-04-06T08:54:45.937 回答