到此开始讲解Dubbo消费端的源码
在消费一端,需要关注两件事情。第一,接口的proxy如何生成。第二,请求如何发送。
首先看到启动类
接下来看真正inject方法
现在需要思考,待注入的Bean从哪儿来,这个Bean必然注入的是一个proxy,所以就需要思考这个proxy如何生成
从registryProtocol中的refer断点一直往后走,一直找到下面代码
获取好invoker,那就开始生成proxy了
到此,所有初始化工作就做完了,总结如下:
1、找到要注入的信息,如:哪个field需要注入@DubboReference
2、基于要注入的信息生成代理,步骤:subscribe -> notify -> 根据providerUrl生成invoker -> 要使这个invoker变成可用的,还需通过netty生成连接获取client,这样就具备DubboInvoker特性了
3、根据完整的invoker创建代理对象,最终赋值给field