这里是【秒懂·云原生】,关注我学习云原生不迷路
如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位点赞评论收藏⭐️
【秒懂·云原生】 目前主要更新微服务,一起学习一起进步。
主要介绍Spring Cloud —— Feign调用微服务中的接口
JAVA 项目中接口调用怎么做?
HttpClient 是 Apache Jakarta Common 下的子项目,用来
提供高效的、最新的、功能丰富的支持 Http 协议的客户端
编程工具包,并且它支持 HTTP 协议最新版本和建议。
HttpClient 相比传统 JDK 自带的 URLConnection,提升了
易用性和灵活性,使客户端发送 HTTP 请求变得容易,提高
了开发的效率。
一个处理网络请求的开源项目,是安卓端最火的轻量级框
架,由 Square 公司贡献,用于替代 HttpUrlConnection
和 Apache HttpClient。OkHttp 拥有简洁的 API、高效的
性能,并支持多种协议(HTTP/2 和 SPDY)。
HttpURLConnection 是 Java 的标准类,它继承自
URLConnection,可用于向指定网站发送 GET 请求、POST
请求。HttpURLConnection 使用比较复杂,不像
HttpClient 那样容易使用。
RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户
端,RestTemplate 提供了多种便捷访问远程 HTTP 服务的
方法,能够大大提高客户端的编写效率。
Feign 是一个声明式的 REST 客户端,它能让 REST 调用更
加简单。Feign 供了 HTTP 请求的模板,通过编写简单的接
口和插入注解,就可以定义好 HTTP 请求的参数、格式、地
址等信息。
而 Feign 则会完全代理 HTTP 请求,我们只需要像调用方法
一样调用它就可以完成服务请求及相关处理。
Spring Cloud 对 Feign 进行了封装,使其支持 SpringMVC
标准注解和 HttpMessageConverters。Feign 可以与
Eureka 和 Ribbon 组合使用以支持负载均衡。
在 Spring Cloud 中集成 Feign 的步骤相当简单,首先还是
加入 Feign 的依赖,代码如下所示。
<dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter- openfeignartifactId> dependency>
在启动类上加 @EnableFeignClients 注解,如果你的 Feign
接口定义跟你的启动类不在同一个包名下,还需要制定扫描
的包名 @EnableFeignClients(basePackages=“…”),代
码如下所示。
@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class WsOrderServerApplication {
public static void main(String[] args) {
SpringApplication.run(WsOrderServerApplication .class, args); } }
定义一个 Feign 的客户端,以接口形式存在,代码如下所
示。
Spring Cloud 在 Feign 的基础上做了扩展,可以让
Feign 支持 Spring MVC 的注解来调用,原生的 Feign 是
不支持 Spring MVC 注解的
@FeignClient(value = "ws-user-server") public interface UserRemoteClient { @GetMapping("/user/{id}") Map getuser(@PathVariable(name = "id") String id); }
首先我们来看接口上加的 @FeignClient 注解。这个注解标
识当前是一个 Feign 的客户端,value 属性是对应的服务名
称,也就是你需要调用哪个服务中的接口。
接口说明: