假装是简化Java HTTP客户端开发的工具(java-to-httpclient-binder),它的灵感来自于改造,jaxrs - 2.0和WebSocket.Feign的初衷是降低统一绑定分母到HTTP API的复杂度,不区分是否为restful。
开发人员使用球衣和CXF等工具可以方便地编写java客户机,从而提供REST或SOAP服务,开发人员也可以基于Apache http HC等传输工具包编写自己的java http客户机;而假装的关注点在于简化开发人员使用工具包的复杂度,以最少的代码编写代码从而提供java http客服端。通过定制解码器和异常处理,开发人员可以任意编写文本化的http API。
好了,上面是官方的,假如要我说假装是什么。
可以理解为假装是一个超级方便的调用Spring-Cloud远程服务的框架/工具,帮助开发者以更少耦合更少代码更快更兼容的方法进行远程服务调用。
调用的时候,双方的应用程序。yml一定要加上两个配置,因为双方服务器是需要相互发现并获取服务列表的。
不然会报错提示“假装负载均衡器没有可用的服务器为客户端:xxxx”
尤里卡: 客户: #是否将自己注册到尤里卡服务注册中心,默认为真实的 register-with-eureka:真 #是否从服务注册中心获取可用的服务清单,默认为真实的 fetch-registry:真 serviceUrl: defaultZone: http://192.168.114.152:9091尤里卡 >之前然后就是再pom.xml里面加上最新出炉的装包
& lt; !——https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-feign——比; & lt; dependency> & lt; groupId> org.springframework.cloud & lt; artifactId> spring-cloud-starter-feign & lt; version> 1.4.4.RELEASE & lt;/dependency> >之前
启动器一定要加@EnableFeignClients,代表进行假装调用,假装会到尤里卡拉取服务列表,供调用的。
@EnableEurekaClient @SpringBootApplication @EnableFeignClients 公开课CheckCollectSysApplication { 公共静态void main (String [] args) { SpringApplication.run (CheckCollectSysApplication.class, args); } } >之前调用方业务方面。推荐是写一个接口类,把方法封装起来供其他控制器调用。
这里要注意
1。@FeignClient里面一定要指定是名字,很久以前的版本指定的是serviceId,那个已经过时了。
2。如果用到占位符,@PathVariable也需要指定值,这是一个强制要求,不然会报错,提示“假装PathVariable注释是空的> @FeignClient (name=" demo-checksys ") 公共接口ChecysysRemoteClient {/* * *获取基本信息 * (PutMapping的URL=远程项目+ ControllerPath + MethodPath的路径 *简单的说,就是你直接邮差可以访问的项目路径) */@PutMapping (“/checksys/注册/信息/{checkNum}”) 公共ApiReturnObject updateCheckRegisterByBodyCheck (@PathVariable (value=" https://www.yisu.com/zixun/checkNum ")字符串checkNum @RequestParam (value=" https://www.yisu.com/zixun/bodyJson ")字符串bodyJson); }
这里的FeignClient的名称是指注册到尤里卡的被调用者的ApplicationName,就是你应用的名字啦,application.yml里面可以进行配置
春天: 应用程序: 名称:demo-checksysPutMapping的URL=远程项目+ ControllerPath + MethodPath的路径,简单的说,就是你直接邮差可以访问的项目路径。
例如项目是http://127.0.0.1:8080/演示/user/getUser/{userId}
那么这里写的就是“/演示/user/getUser/{userId}”
至于被调用者,一如既往的代码,没什么不同,毕竟是被别人调用,这种调用方式很安逸。
/* * *获取基本信息 */@PutMapping(“/信息/{checkNum}”) 公共ApiReturnObject updateCheckRegisterByBodyCheck (checkNum @PathVariable字符串,字符串bodyJson) {//这里可以打印一些日志 outSystemService。updateCheckRegisterByBodyCheck (checkNum bodyJson); 返回ApiReturnUtil.success(“调用成功”); }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
详解Spring-Cloud2.0之假装调用远程服务指南