概述
这两天项目里面有个远程http调用,本来想用httpClient调用,但是尝试了一下httpClient 太麻烦而且还容易出错,所以就转到FeignClient上,但是使用Spring Boot 2.x 版本以上的有许多问题,记录一下
在spring boot1.x下,使用注解@EnableFeignClients,jar包依赖是:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
但是 在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
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
在启动类上添加 @EnableFeignClients注解
然后定义 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
然后在对应地方调用
@Resource
private FaceServerClient faceServerClient;
@PostMapping(value = "")
@ApiOperation("询目标库")
public BaseResponse<List<LibraryDO>> libList(){
FaceDTO faceDTO = new FaceDTO();
faceDTO.setMsg_id("1028");
BaseResponse<List<LibraryDO>> response = faceServerClient.libList(faceDTO);
return response;
}
最后
以上就是复杂白开水为你收集整理的springboot+vue 前后端分离项目实战五 Spring Boot 2.X使用 FeignClient的全部内容,希望文章能够帮你解决springboot+vue 前后端分离项目实战五 Spring Boot 2.X使用 FeignClient所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复