【alibaba-cloud】openfeign的使用
Spring Cloud D版及之前的版本使用的是Feign,而该项目现已更新为了OpenFeign。所以后续使用的依赖也发生了变化
Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。openfeign也是类似。
在使用之前我们首先启动我们的nacos,然后搭建我们的项目,然后将我们的服务注册到nacos。
使用
服务方搭建
新建一个Maven父工程名为openFeign
pom文件
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>0.2.2.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
然后新建maven子工程为customer-service。
依赖为
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
在customer-service再新建子工程customer-service-api。在此工程中我们添加一个接口
package com.service.api;import org.springframework.web.bind.annotation.GetMapping;public interface ICustomerService {/*** 提供我们发布的接口* @param userId* @return*/@GetMapping("/getUser")String getUser(Integer userId);
}
customer-service下新建子工程customer-service-impl,添加上一个customer-service-api的pom依赖,一个启动类,一个controller,一个配置文件。
pom依赖:
<dependency><groupId>com.openFeign</groupId><artifactId>customer-service-api</artifactId><version>1.0-SNAPSHOT</version></dependency>
启动类:
@SpringBootApplication
public class AppCustomer {public static void main(String[] args) {SpringApplication.run(AppCustomer.class);}
}
controller
@RestController
public class CustomerServiceImpl implements ICustomerService {@Value("${server.port}")private String serverPort;@Overridepublic String getUser(Integer userId) {return "我是会员服务!" + serverPort;}
}
配置文件
spring:application:###服务名称name: customer-servicecloud:nacos:discovery:###nacos注册地址server-addr: 127.0.0.1:8848
server:port: 8082
启动后我们调用此忌口,并且在nacos的 服务列表查看我们的服务是否已经注册到nacos。
由上图可以知道我们的服务方已经没有问题了。
客户端搭建
还是上一次搭建的工程,在openFeign下搭建order-service子工程,然后添加配置文件,一个接口,一个controller,一个启动项。
pom文件
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
配置文件
spring:application:###服务名称name: order-sevicecloud:nacos:discovery:###nacos注册地址server-addr: 127.0.0.1:8848
server:port: 8083
启动项:
@SpringBootApplication
@EnableFeignClients
public class AppOrder {public static void main(String[] args) {SpringApplication.run(AppOrder.class);}
}
接口(此接口使用openfeign)
@FeignClient("customer-service")
//去nacos中找到customer-service服务,然后找此服务的提供的接口,不需要使用rest风格的调用方式
public interface OrderServiceFiegn {/*** 提供我们发布的接口* @param userId* @return*/@GetMapping("/getUser")String getUser(@RequestParam("userId") Integer userId);}
controller
我们新建了一个后端接口,在此接口中调用我们本服务接口的方法即可实现调用第三方的接口。
@RestController
public class OrderServiceImpl {@Autowiredprivate OrderServiceFiegn orderServiceFiegn;/*** 基于我们的fegin客户端形式实现了rpc远程调用** @return*/@RequestMapping("/orderFeignToCustomer")public String orderFeignToMember() {String result = orderServiceFiegn.getUser(1);return "我是订单调用会员服务的接口,返回结果" + result;}
}
将服务端和客户端启动起来,我们可以看一下客户端调用的情况,以及在nacos的注册情况。
nacos界面我们也可以看到两个服务已经注册成功。
由此客户端的调用情况,我们可以看到调用服务端的方法成功,客户端端口号为8083,服务端为8082,服务端将自己的端口号返回,被客户端接收到了。
本章代码资源:
https://download.csdn.net/download/wangyunzhao007/12550683
【alibaba-cloud】openfeign的使用相关推荐
- Spring Cloud OpenFeign夺命连环9问,这谁受得了?
1.前言 前面介绍了Spring Cloud 中的灵魂摆渡者Nacos,和它的前辈们相比不仅仅功能强大,而且部署非常简单. 今天介绍一款服务调用的组件:OpenFeign,同样是一款超越先辈(Ribb ...
- Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败
[Alibaba Cloud Linux 2.1903 LTS 64位]服务器yum源下载404 failure: repodata/repomd.xml from docker-ce-stable: ...
- alibaba cloud 打包_阿里也上VS Code船了,发布Alibaba Cloud Toolkit插件
原标题:阿里也上VS Code船了,发布Alibaba Cloud Toolkit插件 IT之家11月26日消息 近日,阿里巴巴发布了 Alibaba Cloud Toolkit for VS Cod ...
- 部署并使用Docker(Alibaba Cloud Linux 2)
部署并使用Docker(Alibaba Cloud Linux 2) 更新时间:2021-06-25 14:54 背景信息 部署Docker 使用Docker 制作Docker镜像 本文介绍如何在Al ...
- 回顾 | Alibaba Cloud Native Day 杭州场圆满结束(附 PPT 下载)
<关注公众号,回复 666 即可获取直播回看链接及活动 PPT合集> 2020 年 4 月 18 日,我们首次将线下 Meetup 搬到线上,升级为 Alibaba Cloud Nativ ...
- 阿里云智能编码idea插件:Alibaba Cloud AI Coding Assistant
阿里云智能编码idea插件:Alibaba Cloud AI Coding Assistant plugins中搜索: 参考链接: https://help.aliyun.com/document_d ...
- Alibaba Cloud Toolkit——简介
基本概念 Alibaba Cloud Toolkit:Cloud Toolkit 是免费的本地 IDE 插件,帮助开发者更高效地开发.测试.诊断并部署应用.通过插件,可以将本地应用一键部署到任意服务器 ...
- Alibaba Cloud Linux 技术图谱首发,分享学习感言得大奖!
简介:作为开发者,你对Linux的了解有多少呢?到底要学到什么程度,才能被判定是"精通"呢?如果小白想要入手Linux,该从哪里学起呢? 这时你需要一条有效的学习路径,能囊括详细的 ...
- ACK正式支持对基于Alibaba Cloud Linux操作系统的集群进行等保加固
简介:我们对基于Alibaba Cloud linux操作系统的ACK集群进行等保加固,意味着阿里云在云产品开发和交付的过程中将安全作为重要组成部分,将合规融入到产品的"血液"中, ...
- Spring Cloud OpenFeign使用教程
文章目录 Spring Cloud OpenFeign Demo 怎么配置OpenFeignServer 怎么配置OpenFeignClient 多个参数传递问题 FeignClient的日志问题 多 ...
最新文章
- 计算机网络查看路由表命令,如何查看、添加、修改、删除路由器内部的路由表项?...
- 中文分词_中文分词及其应用
- HDU - 3804 Query on a tree(树链剖分+线段树+离线处理)
- 信息学奥赛一本通(1227:Ride to Office)
- HDU1425 sort【排序】
- 图论算法——有向图的邻接链表实现
- Eclipse开发环境配置
- mysql批量执行语句_mysql批量执行sql语句
- 蚁群算法原理与实现(python)
- 用python做股票因子分析_因子分析(by+alphalens)
- c语言调用函数时二维数组实参,C语言函数调用二维数组,指针问题
- 计算机pe启动蓝屏怎么办,进pe蓝屏解决方法
- 计算机中的c盘d盘,怎么把电脑中的D盘转换成C盘并删除原C盘系统
- (转载)神级代码编辑器 Sublime Text 全程指南
- 文件夹病毒或1K病毒解决
- 买房贷款月供怎么算?贷款利息是多少?
- 利用手机访问电脑上开发的html页面
- Yahoo! User Interface Library,YUI,YUI下载,YUI学习,YUI是什么,YUI浅谈,YUI研究(2)
- ABB机械臂和RobotStudio编程简介
- iOS彻底下架删除应用