retrofit-springboot-starter 启动加载图
2021-05-28 17:33:48 23 举报
retrofit-springboot-starter 启动加载流程图核心方法解析
作者其他创作
大纲/内容
添加错误码解析拦截器
RetrofitFactoryBean
添加Interceptror拦截器
extend
org.springframework#FactoryBean
#doScan()
3. 初始化异常处理实例
depend
整一个Retrofit实例(核心,看左侧详细分析)
熔断配置
3.1 getOkHttpClient
try/catch处理异常
trace
5. 创建代理对象
这个没啥好说的,一般springboot中的各种插件都是通过SPI机制装载
3.2 getCallAdapterFactories
友情提示:请按照箭头方向阅读
添加服务选择拦截器
使用alibaba的sentinel实现熔断逻辑处理,整一个监听器,spring容器加载好之后就启动这个处理器
包括
FactoryBean的实现,负责生产扫描到的Client接口代理实现类(发送http请求)
初始化
Retrofit
仔细看看到底是如何替我们构造出代理对象的,哪些拦截器等功能如何集成的
2. @Bean RetrofitConfigBean retrofitConfigBean()注入一个配置Bean(里面的属性全是Propertis的各种配置初始化的)
检查注解的位置、配置啥的是不是按照我的标准来!
OKHttp
SPI加载机制
#getObject()
1. checkRetrofitInterface()
2. getRetrofit()
连接池配置
拦截器配置
步骤
扫描@RetrofitClient注解
重试配置
3.3 getConverterFactories
4. 初始化熔断处理器
这个没啥好说的,就是java的反射代理
核心步骤
ClassPathRetrofitClientScanner
#processBeanDefinitions()
这个是比较重要的一部分,涉及如何扫描注解和实现方法调用
3. @Import({AutoConfiguredRetrofitScannerRegistrar.class})加载自定义的注册器,扫描自定义路径的RetrofitClient接口
适配器配置
implements
拦截器是OKHttp自带的功能,这里只是把各种功能通过拦截器实现注册到Client中
org.springframework#ClassPathBeanDefinitionScanner
转换器配置
1. @EnableConfigurationProperties(RetrofitProperties.class)加载 RetrofitProperties 配置类,绑定application.yml配置
retrofit 组件,本身依赖组合了OKHttp组件来实现服务请求
RetrofitAutoConfiguration
添加熔断降级拦截器
添加适配器和转换器,说白了就是请求体和响应体的转换。也是retrofit自带的功能。
创建注解接口的代理实现类 ProxyObject
添加重试和日志拦截器
定义扫描到的类所使用的生产工厂是啥
目前主要是用来处理熔断异常
0 条评论
下一页