规划阿里巴巴网站怎么做,网站icp备案认证怎么做,中国交通建设官方网站,成都旅游景点排名前十Feign
Java中如何实现接口调用#xff1f;即如何发起http请求 前三种方式比较麻烦#xff0c;在发起请求前#xff0c;需要将Java对象进行序列化转为json格式的数据#xff0c;才能发送#xff0c;然后进行响应时#xff0c;还需要把json数据进行反序列化成java对象。
…Feign
Java中如何实现接口调用即如何发起http请求 前三种方式比较麻烦在发起请求前需要将Java对象进行序列化转为json格式的数据才能发送然后进行响应时还需要把json数据进行反序列化成java对象。
而restTemplate可以自动进行序列化和反序列化比较方便。 Feign是Netflix停止维护了开发的声明式、模板化的HTTP客户端其灵感来自Retrofit、JAXRS-2.0以及 WebSocket。Feign可帮助我们更加便捷、优雅地调用HTTP API。 Spring Cloud openfeign对Feign进行了增强使其支持Spring MVC注解另外还整合了 Ribbon和Nacos从而使得Feign的使用更加方便。以后讲openfeign其实就是指Feign Feign可以做到 使用 HTTP 请求远程服务时就像调用本地方法一样的体验 开发者完全感知不 到这是远程方法更感知不到这是个 HTTP 请求。它像 Dubbo 一样consumer 直接调用接 口方法调用 provider而不需要通过常规的 Http Client 构造请求再解析返回数据。它解决了 让开发者调用远程接口就跟调用本地方法一样无需关注与远程的交互细节更无需关注分布 式环境开发 如何使用Feign? 每个变量的含义 path的值和StockController上的RequestMapping后的内容一模一样即可
方法的书写和Controller层中方法的书写也一模一样即可但是不用写方法体大括号也不需要 第四步注入FeignService直接调用另一个微服务提供的方法即可 Spring Cloud openfeign对Feign进行了增强使其支持Spring MVC注解 另外还整合了 Ribbon和Nacos会自动的进行服务注册和发现还可以进行基于Ribbon的负载均衡 注意在springMVC中接口的定义不严格如果路径变量只有一个参数它可以自动和唯一的形参对应上但是在定义FeignService接口的时候它的要求很严格必须加上后面的别名一对一的指定哪个参数对哪个参数 日志配置
一般通过Feign去调用服务的时候不会输出任何日志信息这对于开发者想调试修改bug来说很不方便
1. 全局配置通过定义一个配置类
返回Feign日志类型的一个枚举然后修改配置文件中springboot默认的日志级别
注意加上Configuration注解就会对所有的服务提供方都生效 springboot默认的日志级别是infofeign的日志级别是debug比info级别低所以在springboot的项目中不会输出我们还需要调整springboot的日志级别但是我们不想调整所有日志的输出级别只调整springboot针对feign定义的所有接口的输出日志级别下面加上了feign定义的所有接口的包路径
最后就可以输出了 2.局部配置有两种方式
1局部配置调用指定的微服务时才输出日志
先将注解去掉然后再在FeignClient 注解中指定使用的配置类
s
2通过配置文件指定对哪个服务生效再指定日志级别