springboot+vue 前后端分离项目实战五 Spring Boot 2.X使用 FeignClient

这两天项目里面有个远程http调用,本来想用httpClient调用,但是尝试了一下httpClient 太麻烦而且还容易出错,所以就转到FeignClient上,但是使用Spring Boot 2.x 版本以上的有许多问题,记录一下

在spring boot1.x下,使用注解@EnableFeignClients,jar包依赖是:

 
            org.springframework.cloud
            spring-cloud-starter-feign
   

但是 在spring boot2.x下,

这是网上其他地方搜到的 Spring Cloud对Feign的支持由org.springframework.cloud:spring-cloud-netflix-core移到org.springframework.cloud:spring-cloud-openfeign-core下,而Finchley.M9版本下的spring-cloud-starter-openfeign:2.0.0.M2的pom依赖文件中导入的是spring-cloud-netflix-core而非spring-cloud-openfeign-core,需要我们在pom文件中添加对应依赖管理使spring-cloud-starter-openfeign版本更新到2.0.0.RC1
就是 spring-cloud-starter-openfeign要用2.0.0以上的版本

我的springboot版本是 2.1.5.RELEASE,版本比较高,所以spring-cloud-starter-openfeign的版本用2.1.2RELEASE,如果不匹配可以去maven仓库搜其他版本试试
maven仓库 https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign

 
            org.springframework.cloud
            spring-cloud-starter-openfeign
            2.1.2.RELEASE
  

在启动类上添加 @EnableFeignClients注解
springboot+vue 前后端分离项目实战五 Spring Boot 2.X使用 FeignClient_第1张图片
然后定义 FaceServerClient

@FeignClient(name = "faceServerClient", url = "${face.url}")
public interface FaceServerClient {

    @RequestMapping(value="",method= RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)
    FBaseResponse libList(@Valid @RequestBody FaceDTO faceDTO);

}

yml中定义 face.url
springboot+vue 前后端分离项目实战五 Spring Boot 2.X使用 FeignClient_第2张图片
然后在对应地方调用

  @Resource
    private FaceServerClient faceServerClient;

    @PostMapping(value = "")
    @ApiOperation("询目标库")
    public BaseResponse> libList(){
        FaceDTO faceDTO = new FaceDTO();
        faceDTO.setMsg_id("1028");
        BaseResponse> response = faceServerClient.libList(faceDTO);
        return response;
    }

你可能感兴趣的:(maven,springCloud,springboot,springboot+vue)