当我们在定义FeignClient时需要注意以下亮点。
1.请求方式不能用缩写的形式
错误的写法
@FeignClient
(
"microservice-provider-user"
)
public
interface
UserFeignClient {
@GetMapping
(value =
"/users"
)
public
User findById(@RequestParam(value="id")
Long id);
...
}
正确的写法
@FeignClient
(
"microservice-provider-user"
)
public
interface
UserFeignClient {
@RequestMapping
(value =
"/users"
, method = RequestMethod.GET)
public
User findById(
@RequestParam
(
"id"
) Long id);
...
}
这里不能简写
2.当使用@PathVariable时,不能省略value
错误的写法
@FeignClient
(
"microservice-provider-user"
)
public
interface
UserFeignClient {
@RequestMapping
(value =
"/users/{id}"
, method = RequestMethod.GET)
public
User findById(
@PathVariable
Long id);
...
}
正确的写法
@FeignClient
(
"microservice-provider-user"
)
public
interface
UserFeignClient {
@RequestMapping
(value =
"/users/{id}"
, method = RequestMethod.GET)
public
User findById(
@PathVariable
(
"id"
) Long id);
...
}
在我们直接写接口时,如果value与属性名相同时,是可以不写的,但是在FeignClient中却不能.