入口
@EnableDubboConfig ->
和spring的@import有关直接进到DubboConfigConfigurationRegistrar->
貌似这个这个方法实在注册bean点进去看看
解析propeties配置EnableDubboConfigBinding->DubboConfigBindingRegistrar->注册dubbo db对象registerBeanDefinitions->registerDubboConfigBeans->registerDubboConfigBean和registerDubboConfigBindingBeanPostProcessor
registerDubboConfigBean
将对应的配置解析成一个db放在spring
registerDubboConfigBindingBeanPostProcessor
对每个Beandifition添加处理器
DubboConfigBindingBeanPostProcessor->
把配置绑定在dubbo bd上
创建这个processor的时候会执行spring初始化对象方法init这个binder
老套路和之前一样直接进到这个import的类里面spring会帮忙执行这个类的注册bean的方法
扫描类这里主要是拿到我们注解配置的路径或者properties配置的路径
ServiceAnnotationBeanPostProcesssor
又是一个BeanPostProcessor全是springBean的后置处理器启动spring肯定执行
把带有@Service 注解的类放在spring
添加一个生成代理对象的bean工厂后置处理器
ReferenceAnnotationBeanPostProcessor
这是里把dubbo bean属性填充上构建出来了
回到InjectAnnotationBeanPostProcessor->postProcessPropertyValues()这个方法
这里可以发现dubbo注入支持 @Autowird @Reference
找到注入点后调用inject方法进行注入
## ReferenceAnnotationBeanPostProcessor
回到ReferenceAnnotationBeanPostProcessor-> 这里是dubboBean如何生成去inject上一步的对象dubbo做了一点缓存
这里就完成了所有的整合