天天看點

Feign 調用微服務應用的api微服務應用介紹引入maven依賴編寫service以及facFallbackFactory調用效果展示

Feign 調用微服務應用的api

  • 微服務應用介紹
  • 引入maven依賴
  • 編寫service以及facFallbackFactory
    • 啟動類需要配置掃描類和開啟服務
  • 調用
  • 效果展示

微服務應用介紹

每個微服務是整個系統的一小塊分值,整體應用按照水準,或者垂直劃分應用,每個微服務獨立,職責專一,微服務之間通過暴露出來的接口進行通信,這裡将介紹如何通過feign調用接口,實作通信。

引入maven依賴

<dependency>
     <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-openfeign-core</artifactId>
      <version>2.2.2.RELEASE</version>
      <scope>compile</scope>
 </dependency>
           

編寫service以及facFallbackFactory

FallbackFactory意思就是調用微服務接口失敗将會執行的一個方法

@FeignClient(value = "boss-bes-basedata-center",fallback = GetBaseDataServiceFallbackFactory.class)
public interface GetBaseDataService {

    @PostMapping(value="/education/bes/v1/basedata-center/api/getSubjectTypes",
            consumes = MediaType.APPLICATION_JSON_VALUE)
    CommonResponse getSubjectTypes(@RequestBody CommonRequest<SubjectTypeListConditionDTO> request);
}


/**
 * @Description 熔斷類 
 */
@Component
public class GetBaseDataServiceFallbackFactory implements GetBaseDataService {
    @Override
    public CommonResponse getSubjectTypes(CommonRequest<SubjectTypeListConditionDTO> request) {
        return CommonResponse.error(BusinessErrorCode.EXAM_CENTER_BASE_DATA_GET_SUBJECT_TYPE_LIST_ERROR);
    }
}
           

啟動類需要配置掃描類和開啟服務

調用

public CommonResponse doGetSubjectTypeList(@RequestBody @Valid CommonRequest<String> commonRequest){
        SubjectTypeListConditionDTO dto = new SubjectTypeListConditionDTO();
        dto.setOrgId(Long.valueOf(commonRequest.getBody()));
        CommonRequest<SubjectTypeListConditionDTO> request = new CommonRequest<>();
        request.setHeader(commonRequest.getHeader());
        request.setBody(dto);
        return getBaseDataService.getSubjectTypes(request);
    }
           

效果展示

Feign 調用微服務應用的api微服務應用介紹引入maven依賴編寫service以及facFallbackFactory調用效果展示

# The ending