Spring整合Dubbo源码

1. Dubbo中propertie文件解析以及处理原理
2. Dubbo中@Service注解解析以及处理原理
3. Dubbo中@Reference注解解析以及处理原理

这三个是Dubbo和Spring整合的核心原理

1.整体流程

1. propertie文件解析以后,创建多个对象,生成protocolConfig等存储配置文件中信息的对象
2. 处理@Service时,会创建两个对象,ServiceBean和SpringBean,并且SpringBean为ServiceBean的ref属性,ServiceBean中包含大量的@Service传入的参数信息,还有就是解析propertie文件生成的各种配置对象中默认的信息
    @Service = 注解信息+配置文件默认信息+SpringBean

2.@EnableDubbo

这个注解由 @EnableDubboConfig + @DubboComonmentScan 两个注解组成

1.@EnableDubboConfig

解析 propertie文件,生成大量的配置存放对象
​
@Import(DubboConfigConfigurationRegistrar.class)
在Spring中,如果一个注解Import一个类,并且这个类实现了  ImportBeanDefinitionRegistrar接口,就会执行它的registerBeanDefinitions方法,这个方法Spring用来向容器中注册Bean定义信息
​
这个类主要就是: 生成配置文件中配置的接受对象的类全路径,以及Bean的名字,放到Spring容器中等待后续的Spring对象生命周期时创建,以及将我们配置的配置信息的值存放起来,以BeanPostProcess的方式赋值给接受配置信息的对象

2.@DubboComonmentScan

处理传入扫描包下的两个核心注解  @Service 和 @Reference
​
@Import(DubboComponentScanRegistrar.class)
这个类就是处理两个注解的地方
1. 处理@Service   
    1.生成两个Bean定义信息
    2.将注解上的参数解析放入到Bean定义信息中
    3.通过Spring的监听器,最终实现服务导出,注册到注册中心中
    然后等着别人来调用就可以了,执行对象的方法
2. 处理@Reference
    这个注解主要是用来属性注入,属性注入和@Aotuwired一样,都是在Bean创建时通过BeanPostProcess完成的,在启动初期只是创建了能够完成@Reference注解解析的类,没有真正解析
    
    判断本地中是否有对应的ServiceBean,如果存在得到ref属性对应的SpringBean返回如果没有调用get生成代理对象,后续用来去注册中心找服务

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值