上一篇文章我们分析了ribbon的核心原理,接下来我们来看看springcloud是如何集成ribbon的,不同的springcloud的组件(feign,zuul,RestTemplate)集成ribbon有所不同,这篇文章先来看看RestTemplate。
创新互联建站专注于南丹网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供南丹营销型网站建设,南丹网站制作、南丹网页设计、南丹网站官网定制、成都微信小程序服务,打造南丹网络公司原创品牌,更为您提供南丹网站排名全网营销落地服务。RestTemplate的类图如下
HttpAccessor
主要根据ClientHttpRequestFactory
创建ClientHttpRequest
InterceptingHttpAccessor
扩展了HttpAccessor
,创建拦截的InterceptingClientHttpRequest
,这里会设置拦截器ClientHttpRequestInterceptor
,这是集成ribbon的核心,当RestTemplate
发起http请求调用的时候,会先经过拦截器,然后才真正发起http请求。拦截器ClientHttpRequestInterceptor
是如何被设置的呢?在LoadBalancerAutoConfiguration
类中,有如下代码:
@LoadBalanced @Autowired(required = false) private ListrestTemplates = Collections.emptyList();