一、Dubbo服务注册成ReferenceBean
和上篇一样,消费端也是通过DubboComponentScanRegistrar注册成ReferenceBean,它用到的处理器是ReferenceAnnotationBeanPostProcessor,具体注册过程暂不详细展开,可以自行翻阅源码。
二、Dubbo服务发现
上面的服务注册到Spring IOC容器每一个服务其实就是一个ReferenceBean,ReferenceBean是一个FactoryBean,直接看下这个工厂Bean的getObject()方法,接下来就是生成透明代理的流程:
ReferenceConfig#get
->ReferenceConfig#init
->ReferenceConfig#createProxy
->DubboProtocol#protocolBindingRefer —— 生成Invoker
->AbstractProxyFactory#getProxy(org.apache.dubbo.rpc.Invoker<T>) —— 根据Invoker生成透明代理
->JavassistProxyFactory#getProxy
具体内容之前的一篇文件《Dubbo源码阅读(一)-服务调用流程》第一章节:生成透明代理,有详细介绍,可以翻阅此文章查看。