当前位置: 代码迷 >> 综合 >> SpringCloud 简化微服务调用 Feign
  详细解决方案

SpringCloud 简化微服务调用 Feign

热度:24   发布时间:2024-01-09 15:56:36.0

SpringCloud 简化微服务调用 Feign

  • maven 依赖

        <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);}
  • 注入形式

    • 以@Autowired方式直接注入,调用即可
    @Autowiredprivate JobService jobService;

  相关解决方案