1.服务提供者(controller层)
@GetMapping("/user/{id}") public ApiResult getById(@PathVariable("id")Integer id){ return ok(userService.getById(id)); }
2.Feign模块cilent定义
@FeignClient(value = "api-ucenter-v1",fallbackFactory = UserClientHystrix.class) public interface UserClient { @GetMapping("/user/{id}") ApiResult getById(@RequestParam("id") Integer id); }
重点是这里方法的参数,跟以往拷贝controller中定义的方法不同,这里将 @PathVariable("id")Integer id (从地址栏取参数),改为一般的传参方式@RequestParam("id") Integer id
方法体上的注解不变,还是restful风格
3.通过Feign远程调用
@Autowired
private UserClient userClient;
apiResult = userClient.getById(userModuleDTO.getUserId());