Spring Cloud OpenFeign(声明式服务调用)
创始人
2024-02-29 05:08:06
0

一、介绍

OpenFeign是一种声明式、模板化的HTTP客户端(仅在Application Client中使用)(称OpenFeign作用:声明式服务调用)。声明式调用是指,就像调用本地方法一样调用远程方法,无需感知操作远程http请求。OpenFeign替换RestTemplate。

二、使用 

(1)导入依赖


    org.springframework.boot
    spring-boot-starter-parent
    2.3.12.RELEASE


   
       
            org.springframework.cloud
            spring-cloud-dependencies
            Hoxton.SR12
            pom
            import
       

   



   
        org.springframework.boot
        spring-boot-starter-web
   

   
        org.springframework.cloud
        spring-cloud-starter-netflix-eureka-client
   

   
        org.springframework.cloud
        spring-cloud-starter-openfeign
   

(2)在启动类上添加扫描注解

/*** EnableFeignClients - 开启Openfeign技术。让spring cloud扫描Openfeign相关注解,* 生成动态代理实现对象。*  可选属性 basePackages = {"feign接口所在包1", "feign接口所在包2"}*  默认扫描当前类型所在包,及所有子孙包。*/
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.bjsxt.feign"})
public class OpenFeignAppClientApp {public static void main(String[] args) {SpringApplication.run(OpenFeignAppClientApp.class, args);}
}

(3)编写本地接口

/*** 定义接口,基于注解,实现声明式远程服务调用。* 技术是OpenFeign。* 需要确定的事情:*  1. 访问的远程服务名称是什么。*  2. 访问的远程服务具体地址是什么。*  3. 访问的远程服务请求方式是什么。*  4. 访问的远程服务,参数是什么。*  5. 访问的远程服务,返回结果类型是什么。** FeignClient - 代表当前的接口是一个OpenFeign客户端,要访问远程的服务。*  具体的实现类对象,由spring cloud动态生成代理对象来实现。*  必要属性: value - 要访问的远程服务命名是什么。*/
@FeignClient("application-service")
public interface AppServiceOpenfeignClient {/*** 定义方法。使用SpringMVC注解+方法定义,实现远程服务访问规则定义。* 建议写法: 找到要访问的控制器。复制对应的方法签名即可。** GetMapping - 约束了请求方式*  注解属性value - 约束了请求的具体地址* 方法返回值 - 约束了远程服务返回结果类型* 方法参数表 - 约束了远程服务的请求参数*/@GetMapping("/getNoParams")public String getNoParams();/*** post请求,无参数* @return*/@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字节

相关内容

热门资讯

控股股东减持、创始人退场,中科... 2024年,全球人工智能产业迈入应用爆发期,算力作为AI革命的基石,成为各国科技竞争的核心战场。在这...
德国4月通胀率为2.1% 德国联邦统计局5月14日发布的数据显示,德国4月通货膨胀率为2.1%。通货膨胀率自年初以来持续下降,...
4月社融新增1.16万亿背后 ... 5月14日,中国人民银行发布前4月金融数据。数据显示,2025年4月末社会融资规模存量为424.0万...
【环球财经】伦敦股市14日下跌 转自:新华财经新华财经伦敦5月14日电(记者张亚东)英国伦敦股市《金融时报》100种股票平均价格指数...
中方调整对美加征关税措施     当地时间5月10日至11日,中美经贸高层会谈在瑞士日内瓦举行。5月12日,双方发布《中美日内...
港股IPO磁吸效应显现:融资激... 近期,宁德时代在港股公开发售。截至5月14日,宁德时代已获得机构下单超500亿美元,折合约3902亿...
65名已获释以色列被扣押人员呼... 转自:财联社【65名已获释以色列被扣押人员呼吁推动达成加沙全面停火协议】财联社5月15日电,65名此...
吹进高校的“轻食风”是一次观念...     木须虫    “一份手撕鸡胸、一份紫薯、一份西兰花,没负担又好吃!”近日,天津大学卫津路校区...
14岁北京花剑小将勇夺U15首...     在4月刚刚结束的2025年U15世界中学生夏季运动会上,中国中学生体育代表团以61金21银1...
“流量变现”成商业腐败新场景 转自:法治日报□ 本报记者 张雪泓  北京市海淀区某科技公司视频业务团队负责人陈某,利用职务便利,在...
盲人办卡被要求“睁眼”认证? 转自:成都日报锦观盲人办卡被要求“睁眼”认证? 5月13日,江苏扬州的一位盲人办理手机卡时无法...
卡塔尔与美国签署多项合作文件 新华社多哈5月14日电(记者汪强)卡塔尔埃米尔宫14日发表声明说,卡塔尔与美国当天在卡首都多哈签署两...
新疆警方破获经济犯罪案件330... 转自:法治日报本报讯 记者潘从武 通讯员曹梦阳5月13日,记者从新疆维吾尔自治区公安厅召开的全区公安...
出入境游更便利 下月成都上新... 转自:成都日报锦观出入境游更便利 下月成都上新2条国际航线 本报讯 (成都日报锦观新闻记者 ...
特朗普开启中东行 转自:成都日报锦观瞄准“生意”和“大单”特朗普开启中东行 5月13日,在沙特阿拉伯利雅得,沙特...
算紧急避险吗 转自:成都日报锦观车在桥下躲冰雹致交通拥堵算紧急避险吗 5月14日,#北京有车桥下躲冰雹致堵车...
4月金融指标增速加快 有力支持... 转自:成都日报锦观4月金融指标增速加快 有力支持实体经济 中国人民银行5月14日发布的数据显示...
前4个月 人民币贷款增加10.... 转自:成都日报锦观前4个月 人民币贷款增加10.06万亿元 中国人民银行14日发布的金融统计数...
“等4个灯变等1个灯,通行更快... 转自:成都日报锦观道路重新“分工” 化解拥堵难题“等4个灯变等1个灯,通行更快了” “以前要等...
巴基斯坦与印度互相驱逐一名对方... 转自:成都日报锦观巴基斯坦与印度互相驱逐一名对方外交官 据新华社伊斯兰堡/新德里5月14日电(...