在 Feign jaxrs @Path 中使用 Spring 属性 占位符

Using Spring property placeholders with Feign jaxrs @Path

我正在尝试使用 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

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

由于注释将 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 不会干扰映射字符串。