使用带有Feign jaxrs @Path的Spring属性占位符

时间:2018-04-04 09:17:47

标签: spring-boot jax-rs feign

我正在尝试使用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作为字面值。

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

1 个答案:

答案 0 :(得分: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不会干扰映射字符串。