Feign 调用微服务应用的api

    技术2022-07-12  66

    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); } }

    启动类需要配置扫描类和开启服务

    @EnableFeignClients(clients = {GetPaperCenterDataService.class, GetSystemDataService.class, GetBaseDataService.class})

    调用

    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); }

    效果展示

    # The ending

    Processed: 0.022, SQL: 9