@FeignClient的使用和Spring Boot的版本适配方式
@FeignClient的使用和Spring Boot的版本适配方式
目录@FeignClient使用和SpringBoot版本适配SpringCloud与SpringBoot版本兼容性在pom文件中添加依赖然后再给大家说一下Feign的使用SpringBoot“坑”之@FeignClient注解下面来描述一下我遇到的问题贴上图片,更容易明白
@FeignClient使用和Spring Boot版本适配
公司项目中需要调用微服务,公司使用的Spring Boot版本是1.5.X,而现在的都是用的2.X版本以上了。
在FeignClinet、Spring Cloud与Spring Boot的版本问题上跌跤了,现在在这里记录下来,希望对大家有用。
首先,先看一下官网给出的
Spring Cloud与Spring Boot版本兼容性
Spring CloudSpring BootHoxton2.2.x, 2.3.x (Starting with SR5)Greenwich2.1.xFinchley2.0.xEdgware1.5.xDalston1.5.x
并且还有一个值得注意的地方是Spring Cloud对Feign的支持在Finchley版本以下是由spring-cloud-starter-feign包提供的,而之后就是由spring-cloud-starter-openfeign提供的。
根据我的情况,我的Spring Cloud版本选了Edgware(脑子里浮现出一串数字:7777777),并且feign的依赖应该使用spring-cloud-starter-feign。大家可以根据自己项目情况选择。
在pom文件中添加依赖
然后再给大家说一下Feign的使用
@FeignClient(name = "feignClient", url="xxxx")
public interface FeignClient {
@PostMapping(value = "/query")
String query(@RequestParam String token);
}
@EnableFeignClients(basePackages = {"xxx"}) // 别忘了在启动类上加上注解,xxx的值为FeignClient定义所在的包
@Autowired
FeignClient feignClient;
feignClient.query("xxxxxxxxx");
Spring Boot“坑”之@FeignClient注解
在项目开发中难免会遇到一些问题,这次又遇到了一个很恶心的问题,由于刚接触springboot架构,配置和使用上都还比较陌生。
下面来描述一下我遇到的问题
项目是分模块开发,后台做无状态,登录和权限控制在网关上做,所有服务都注册到服务中心上,由网关往下分发请求
在写网关接口的时候遇到了问题,网关接口和后台接口都写的没有问题,但是在整合后,网关无法转发到这个接口上。经过百度许久后无果。
开始进行排查,由于在网关里@FeignClient 注解的接口中所有的方法请求地址和网关中所请求的地址一样,然后做出个大胆的推测,是不是这个原因呢??
然后开始试验,将网关请求的路径稍作修改,和请求后台的路径不一致,然后,问题解决!!(到目前为止,不知道原因)
贴上图片,更容易明白
【错误页】
【网关XPztU转发接口】
【后台请求接口】
【网关请求接口】
原因是因为网关请求接口名称和后台请求接口名称一样
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~