在 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 不会干扰映射字符串。
我正在尝试使用 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 不会干扰映射字符串。