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