SpringCloud微服务架构中的Feign怎么使用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"SpringCloud微服务架构中的Feign怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringCloud微服务架
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网的科技创新
上海喔噻互联网科技
上游互联网科技
互联网科技类展会
须眉科技是互联网公司吗
昭通云南众福互联网科技有限公司
哈尔滨屹滨互联网科技有限公司
深圳市优智互联网科技有限公司
科技类公司包括互联网吗
如何创新互联网科技
用友工业互联网科技发展
中和天地互联网科技有限公司
互联网科技圈年度人物
南通创西澳互联网科技有限公司
皮皮虾互联网科技有限公司
美国互联网科技公司
互联网与数字科技关系
互联网科技企业商标注意事项
华人运通互联网科技公司
互联网科技金融公司
极限挑战互联网科技
科技类的互联网平台
港股科技和互联网
广州市恰铎互联网科技有限公司
呼和浩特新华互联网科技学院
济南有互联网科技公司吗
广州燕处互联网科技有限公司
重庆科技产业互联网有哪些
上海旺乐尼互联网科技有限公司