一、介绍
OpenFeign是一种声明式、模板化的HTTP客户端(仅在Application Client中使用)(称OpenFeign作用:声明式服务调用)。声明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程http请求。OpenFeign替换RestTemplate。
二、使用
(1)导入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR12</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
(2)在启动类上添加扫描注解
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.bjsxt.feign"})
public class OpenFeignAppClientApp {
public static void main(String[] args) {
SpringApplication.run(OpenFeignAppClientApp.class, args);
}
}
(3)编写本地接口
@FeignClient("application-service")
public interface AppServiceOpenfeignClient {
@GetMapping("/getNoParams")
public String getNoParams();
@PostMapping("/postNoParams")
public String postNoParams();
}
(4)本地接口注意事项
形参需要添加对应注解如@RequestParam,@RequestBody,@PathVariable等。
三、通讯优化
(1)配置OpenFeign请求-应答的GZIP压缩
# 配置openfeign请求和应答的gzip压缩处理
feign:
compression:
request:
enabled: true # 开启请求压缩处理。默认false
min-request-size: 128 # 请求容量多少,开始压缩。默认2048字节
mime-types: text/html, text/xml, text/plain, text/css, application/json # 请求头content type是什么,做压缩处理
response:
enabled: true # 开启响应压缩处理。默认false
(2)Tomcat服务器GZIP优化配置
server:
compression:
enabled: true # 是否开启响应压缩处理。默认false
mime-types: text/html, text/xml, text/plain, text/css, text/javascript, application/javascript, application/json, application/xml # 响应content type什么类型,做压缩处理。
min-response-size: 128 # 响应容量多大,做压缩处理。 默认2048字节
到此这篇关于SpringCloud openfeign声明式服务调用实现方法介绍的文章就介绍到这了,更多相关SpringCloud openfeign内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!