
SpringCloud中Feign的适配器的实现方案
发布日期:2021-05-09 03:55:28
浏览次数:18
分类:博客文章
本文共 1656 字,大约阅读时间需要 5 分钟。
前言
最近在做微服务的项目,各个系统之间需要进行调用,然后用一个适配器来实现服务之间的feign调用,使用适配器进行统一管理。
实现方案
首先我们需要将服务的名称进行单独的配置,可以方便的进行切换和扩展,我们使用bootstrap.yml来进行配置,这样引入jar包的时候,可以将配置互补到我们本身项目的application.yml中。
在我们的bootstrap.yml中进行配置。## 配置的服务名称server-name: # 配置在eureka中注册的服务名称 feignDemo: demo
我们这里配置了一个demo,demo是spring.application.name。我们需要调用demo项目中的接口。
然后配置feign与ribbonfeign: hystrix: threadpool: default: coreSize: 100 enabled: true command: default: execution: isolation: thread: timeoutInMilliseconds: 30000 circuitBreaker: requestVolumeThreshold: 1000ribbon: ConnectTimeout: 30000 ReadTimeout: 30000
之后我们建立一个feign的接口。
@FeignClient(value = "${server-name.feignDemo}")@Componentpublic interface IDemoFeign { @PostMapping("/demo/list") public ListfindDemoListByQueryVO( @RequestBody DemoFeignQueryVO demoFeignQueryVO);}
我们通过用$取值的方式来获取服务的名称。接口内的方法必须与服务中的方法的映射一模一样。这里需要注意的问题是参数必须要用@RequestBody或者@RequestParam来接取。
接下来建立一个controller的类。@Componentpublic class DemoApi { @Autowired private IDemoFeign iDemoFeign ; public ListfindDemoListByQueryVO(DemoFeignQueryVO demoFeignQueryVO){ return iDemoFeign .findDemoListByQueryVO(demoFeignQueryVO); }}
我们在调用的使用通过controller进行调用,这样,我们以后如果接口有什么问题,可以直接改接口,不用改调用项目的代码。
最后,我们建立主启动类,在主启动类中,配置我们刚才建立的controller类,这样打成jar包调用的时候,注入一个主启动类,然后就可以调用其他的api。主启动类如下:@SpringBootApplication@EnableFeignClientspublic class ApiAdapter { public static void main(String[] args) { SpringApplication.run(ApiAdapter.class, args); } @Autowired public DemoApi demoApi ;}
我们需要注意的就是需要加上注解@EnableFeignClients。
实现方案结束,将其打成jar包,引入就可使用。发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月20日 15时48分19秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SpringBoot Web(SpringMVC)
2021-05-09
安装rabbitMQ
2021-05-09
javascript 之对象-13
2021-05-09
解决:angularjs radio默认选中失效问题
2021-05-09
java按照关键字指定的key删除redis(支持模糊删除)
2021-05-09
tl-wr742n 怎么设置dns
2021-05-09
Vue基础入门学习
2021-05-09
Spring Validation 校验
2021-05-09
如何使用Postman生成不同格式测试的报告
2021-05-09
Jmeter-ForEach控制器
2021-05-09
Jmeter发送jdbc请求(操作mysql)
2021-05-09
windows环境下安装zookeeper(仅本地使用)
2021-05-09
Docker学习(十三)- docker rm 命令详解
2021-05-09
移动端Web开发调试之Chrome远程调试(Remote Debugging)
2021-05-09
解决Eclipse左键无法查看maven第三方包的源代码,多图亲测可用【转】
2021-05-09
selenium获取Cookie操作
2021-05-09
selnium远程机上传图片遇到的坑
2021-05-09
idea如何编译maven项目
2021-05-09