SpringCloud 简化微服务调用 Feign
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>3.0.6</version></dependency>
-
启动类增加注解
- @EnableFeignClients:开启feign调用功能
-
建立远程调用接口
/*** 样例集成远程接口*/
@FeignClient(name = "com-demo",contextId = "testDemoService")
public interface DemoService {/**** @param requestBody* @param authorization* @return*/@GetMapping("/api/demo/dispatch/demos")AjaxResponse demosByPage(@RequestParam(value = "requestBody",required = false)QueryDispatchPageRequestBody requestBody,@RequestHeader("Authorization")String authorization);/*** 创建调度样例* @param requestBody* @param code* @param authorization* @return*/@PostMapping("/api/demo/dispatch/demos")AjaxResponse createDemo(@RequestBody CreateJobRequestBody requestBody,@RequestParam(name = "code",required = false) String code,@RequestHeader("Authorization")String authorization);/*** 样例查询* @param demoId* @return*/@GetMapping("/api/demo/dispatch/demo/{demoId}")AjaxResponse getDemo(@PathVariable("demoId")String demoId,@RequestHeader("Authorization")String authorization);/*** 定位属性查询样例* @param locationX* @param locationY* @param locationZ* @param templateType* @param requestSource* @return*/@GetMapping("/api/demo/dispatch/demo/location")AjaxResponse demoByLocation (@RequestParam("locationX")String locationX,@RequestParam("locationY")String locationY,@RequestParam("locationZ")String locationZ,@RequestParam("templateType")Integer templateType,@RequestParam("requestSource")Integer requestSource);/*** 样例状态更新* @param requestBody* @param demoId* @param status* @return*/@PutMapping("/api/demo/dispatch/job/{demoId}/status/{status}")AjaxResponse updateDemoStatus (@RequestBody UpdateJobStatusRequestBody requestBody,@PathVariable("demoId")String demoId,@PathVariable("status")Integer status);}
@Autowiredprivate JobService jobService;