![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring cloud
安迪源文
小步快走
展开
-
Spring Cloud feign客户端执行流程概述
ReflectiveFeign$FeignInvocationHandler使用者所定义的feign客户端(通过注解@FeignClient)会在应用启动时被发现,会以一个ReflectiveFeign$FeignInvocationHandler动态代理的形式注册到容器。feign客户端中对应远程服务端点功能每个函数会对应一个MethodHandler SynchronousMethod...原创 2019-01-31 18:09:52 · 6114 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 合集
本合集中各文章是本人结合个人理解对官方文档Spring Cloud OpenFeign的翻译,并非官方文章的字面翻译。如有疑问,请评论提出。1. 引入Feign2. 覆盖Feign缺省值3. 手工创建Feign客户端4. Feign Hystrix支持5. Feign Hystrix后备方案6. Feign和注解@Primary7. Feign客户端继承支持8. Feign请求/响...原创 2019-02-24 22:01:05 · 359 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 10. 注解@QueryMap支持
OpenFeign注解@QueryMap 支持将POJO对象用作GET map参数。但很不幸,该OpenFeign缺省注解跟Spring不兼容,因为它缺少一个属性value。但是Spring Cloud OpenFeign提供了一个功能上等价的注解@SpringQueryMap ,使用该注解,可以将一个POJO或者Map作为一个请求参数query parameter map.比如,我们有一个P...原创 2019-02-24 21:55:22 · 5206 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 9. Feign使用日志
对于每一个feign客户端,都会被创建一个logger。缺省情况下该logger的名字是feign客户端定义接口的长名称。Feign日志仅仅响应到DEBUG级别。application.yml配置例子 :logging.level.project.user.UserClient: DEBUG每个feign客户端可以配置一个Logger.Level对象来告诉feign要输出多少日志。选项如下...原创 2019-02-24 19:43:44 · 335 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 8. Feign请求/响应压缩机制
Feign请求或者响应可以启用GZIP压缩机制。如下属性文件所示 :feign.compression.request.enabled=truefeign.compression.response.enabled=true对Feign请求压缩的配置跟配置一个web服务器类似 :feign.compression.request.enabled=truefeign.compression...原创 2019-02-24 19:36:12 · 1273 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 7. Feign客户端继承支持
Feign支持使用单继承接口的模板API(boilerplate api)。这样我们就可以将通用操作放到基接口中。比如我们定义了一个基接口UserService.java:public interface UserService { @RequestMapping(method = RequestMethod.GET, value ="/users/{id}") User g...原创 2019-02-24 17:20:13 · 732 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 6. Feign和注解@Primary
当使用feign客户端和Hystrix后备方案时,在ApplicationContext会存在同一类型的多个bean组件实例。这会导致@Autowired无法工作,因为它发现有多个候选bean可用。为了绕开这个问题点,Spring Cloud Netflix的做法是把所有的feign客户端实例加上注解@Primary,这样框架就知道要注入哪个bean了。但在某些场景下,这并不是希望的方案。要关闭该...原创 2019-02-24 12:32:38 · 1311 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 5. Feign Hystrix fallback 后备方案
Hystrix支持后备方案(fallback)的概念: 电路断开(也就是不通电时)或者遇到错误时执行一段缺省代码。要对一个给定的@FeignClient启用后备方案,将它的fallback属性设置成后备方案逻辑实现类的类名。如下所示 :@FeignClient(name = "hello", fallback = HystrixClientFallback.class)protected in...原创 2019-02-24 12:24:07 · 1231 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 4. Feign Hystrix支持
如果Hystrix在classpath中,并且feign.hystrix.enabled=true,那么Feign使用一个断路器包裹每一个方法。并且也能够返回一个com.netflix.hystrix.HystrixCommand。这样你就可以使用reactive模式(.toObservable()/.observe())或者进行异步调用了(.queue())。如果想要在每个feign客户端级别...原创 2019-02-23 22:45:54 · 385 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 3. 手工创建Feign客户端
有时候有可能基于注解和配置属性的方法(参考"Spring Cloud 声明式REST客户端 OpenFeign – 2. 覆盖Feign缺省值")没法满足我们的定制需求。这种情况下,我们可以使用Feign Builder API创建feign客户端。下面的例子中,我们创建了两个feign客户端,使用同一个接口,但是每个feign客户端使用一个不同的request interceptor。@Imp...原创 2019-02-23 22:34:56 · 772 阅读 · 1 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 2. 覆盖Feign缺省值
关于Spring Cloud Feign一个核心的概念是被命名了的客户端(named client)。每个feign client可以被理解成是一整套组件的一部分,这套组件一块工作,按需跟远程服务器发生联系,这整套组件有一个名字,就是应用开发人员通过@FeignClient所指定的名字。Spring Cloud根据FeignClientsConfiguration配置,针对每一个命名的feign客...原创 2019-02-23 22:20:09 · 1765 阅读 · 0 评论 -
Spring Cloud 声明式REST客户端 OpenFeign -- 1. 如何包含Feign
本文内容基于 Spring boot 2.1.2 RELEASE + Spring Cloud Greenwich.RELEASE要在项目中包含Feign,需要使用如下starter : <!--添加feign依赖--> <dependency> <groupId>org.springframewor...原创 2019-02-22 17:54:55 · 557 阅读 · 0 评论 -
Spring Cloud : feign 客户端使用FORM形式POST数据
本文基于 Spring boot 2.1.2 RELEASE + Spring Cloud Greenwich.RELEASEfeign客户端缺省的参数传递行为缺省情况下,feign支持GET和POST方式往服务端提交数据,feign客户端的定义也很方便和直观,如下所示 :@FeignClient(name = &quot;test-service&quot;, path = &quot;/test&quot;)public...原创 2019-02-21 14:31:41 · 16418 阅读 · 3 评论 -
注解 @EnableFeignClients 工作原理
概述在Spring cloud应用中,当我们要使用feign客户端时,一般要做以下三件事情 :使用注解@EnableFeignClients启用feign客户端;示例 :@SpringBootApplication@EnableFeignClientspublic class TestApplication { public static void main(String[...原创 2019-01-28 17:38:37 · 134511 阅读 · 13 评论 -
Springboot Web应用中MVC配置方式总结
本文总结基于Springboot和Spring MVC的Web应用的配置方式 。方式 1 : WebMvcAutoConfiguration这种方式是Springboot的缺省配置方式,只要引入了相应的web starter包,并且注解@EnableWebMvc没有被使用,这种方式就会被采用。如果要基于这种缺省配置方式进行定制,可以结合使用配置文件。方式 2 : @EnableWebMvc...原创 2019-03-02 21:44:47 · 394 阅读 · 0 评论