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);
}
效果展示
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR50MnR0T5dGROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL2YjNxADOzEDMyAzNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
# The ending