SpringCloud微服务架构中的Feign怎么使用
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要讲解了"SpringCloud微服务架构中的Feign怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringCloud微服务架
千家信息网最后更新 2025年01月31日SpringCloud微服务架构中的Feign怎么使用简介
使用
这篇文章主要讲解了"SpringCloud微服务架构中的Feign怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringCloud微服务架构中的Feign怎么使用"吧!
简介
feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。
在springcloud中不仅可以使用Ribbo进行负载均衡,也可以使用Feign。Feign是在Ribbon的基础上进行了一次改进,采用接口的方式实现负载均衡。
使用
导入依赖
org.springframework.cloud spring-cloud-starter-openfeign
编写对应的接口
@FeignClient(value = "PROVIDER-NAME")声明这是一个FeignClient,value指明需要的服务id
@FeignClient(value = "PROVIDER-NAME")public interface DeptClientService {// 请求的路径需与服务提供者的路径一致 @RequestMapping(value = "/dev/add") boolean add(Dept dept); @RequestMapping(value = "/dev/{id}") Dept queryByID(@PathVariable("id") Long id ); @PostMapping(value = "/dev/list") List queryAll();}
修改Controller
我们不再使用RestTemplate来获取所需的对象,而是通过之前定义的接口来获取
@RestControllerpublic class ConsumerController { @Autowired private DeptClientService service; @RequestMapping("/consumer/get/{id}") public Dept getByID(@PathVariable("id") Long id){ return this.service.queryByID(id); } @RequestMapping("/consumer/add") public boolean add(String dname){ Dept dept = new Dept(); dept.setDname(dname); return this.service.add(dept); } @RequestMapping("/consumer/list") public List list(){ return this.service.queryAll(); }}
修改启动类
@EnableFeignClients 开启Feign负载均衡
@SpringBootApplication(scanBasePackages = "com")@EnableEurekaClient@EnableFeignClients(basePackages = "com.service")public class FeignApplication { public static void main(String[] args) { SpringApplication.run(FeignApplication.class,args); }}
对比:
Ribbon
public class ConsumerController { @Autowired private RestTemplate template; private static final String url="http://PROVIDER-NAME"; @RequestMapping("/consumer/get/{id}") public Dept getByID(@PathVariable long id){ //请求的路径,返回的对象 Dept getEntity = template.getForObject(url + "/dev/" + id, Dept.class); return getEntity; } @RequestMapping("/consumer/add") public boolean add(String dname){ Dept dept = new Dept(); dept.setDname(dname); System.out.println(dept); //请求的路径,传递的参数,返回的对象 return template.postForObject(url+ "/dev/add",dept,Boolean.class); } @RequestMapping("/consumer/list") public List list(){ //请求的路径,返回的对象 return template.postForObject(url+"/dev/list",void.class,List.class); }}
Feign
@RestControllerpublic class ConsumerController { @Autowired private DeptClientService service; @RequestMapping("/consumer/get/{id}") public Dept getByID(@PathVariable("id") Long id){ return this.service.queryByID(id); } @RequestMapping("/consumer/add") public boolean add(String dname){ Dept dept = new Dept(); dept.setDname(dname); return this.service.add(dept); } @RequestMapping("/consumer/list") public List list(){ return this.service.queryAll(); }}
感谢各位的阅读,以上就是"SpringCloud微服务架构中的Feign怎么使用"的内容了,经过本文的学习后,相信大家对SpringCloud微服务架构中的Feign怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
服务
路径
架构
均衡
对象
接口
学习
内容
客户
客户端
一致
之间
参数
可在
基础
就是
思路
情况
提供者
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
孟连网络安全
mimic数据库 论文
2020年网络安全人才缺口
昊天软件开发有限公司
服务器信息安全保密协议
郑州汇众网络技术有限公司
搭建文件断点续传服务器
搭建服务器可以干嘛
我的世界服务器深井大乱斗
安徽网络服务器机柜直接供货
普通服务器的内存
嘉兴通信网络技术常见问题
在c 中访问数据库服务器
邮件服务器imap
河北现代化软件开发包括哪些
泰坦之旅怎么搜索服务器
数据库设置主键自增作用
如用数据库打印条码
数据库如何优化连接池
数据库四级的考试科目
mimic数据库 论文
网络安全实验班选拔赛
小视频在抖音服务器会被保留多久
深圳壹加三网络技术有限公司
分布式内存及流数据库技术
网络技术创业行业论文
数据库同名
软件开发人员外包公司吗
最好的网络安全
教育系统网络安全宣传材料