学习spring cloud记录11-Feign初体验
前言
Feign英语单词,主要用作为动词,用作动词译为“装作;假装,伪装;捏造(借口、理由等);创造或虚构,假装;装作;作假;佯作”
Feign是一个声明式的http客户端,起作用就是帮助我们优雅的实现http请求的发送,解决restTemplate的不足之处。
RestTemplate存在的问题:
代码可读性差,编程体验不统一
参数复杂的url难以维护
使用
引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
在启动类加入注解
@SpringBootApplication @EnableFeignClients public class DemoOrderApplication { ... }
编写客户端
新建接口,FeignClient指定服务名
package priv.sinoam.demoorder.demo.clients; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import java.util.Map; @FeignClient("demo-user") public interface UserClient { @GetMapping("/demouser/user/test") Map<String, Object> test1(); }
调用接口
@Autowired private UserClient userClient; @Override public Map<String, Object> test1() { Map<String, Object> map2 = userClient.test1(); return map; }
此时应该可以启动了,但是
启动失败
报错中可以找到这句话:No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?
由于SpringCloud Feign在Hoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错
引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-loadbalancer</artifactId> </dependency>
完美解决,正常启动
验证
报错:
java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose(Ljava/lang/String;Lorg/springframework/cloud/client/loadbalancer/Request;)Lorg/springframework/cloud/client/ServiceInstance;
在nacos依赖中添加扩展:
<!-- nacos客户端依赖包 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <exclusions> <exclusion> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
重启测试成功
后记
版本太新可能会遇到问题,但是网上很多是选择退回版本的方式解决,但其实可以与时俱进的,不必要的时候,何必退后呢。
昔日我曾苍老,如今风华正茂(ง •̀_•́)ง
分类:
spring cloud
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人