我正在尝试使用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
作为字面值。
有人这样做吗?我应该打开功能请求吗?谢谢你的回答。
答案 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不会干扰映射字符串。