dubbo将service注册为bean

Dubbo之provider bean注册详解

dubbo与spring整合

dubbo在解析配置的时候,会将每个配置对应的配置类对应起来,然后将所有的配置类都生成一个BeanDefinition,最后放入spring容器

image.png

@Service

处理@Service:

  • 第一步:自己构建了一个扫描器对象,这个扫描器对象继承了spring的扫描器,然后去调用spring的扫描功能将dubbo指定的注解扫描成BeanDefinition注册到spring容器服务逻辑相关的bean),就是作为spring的一个bean注册到容器中,这就完成了类似spring的@Servie的工作
  • 第二步:生成一个dubbo服务ServiceBean(服务属性+服务导出相关的bean),将@Service中配置的属性赋值到ServiceBean中,beanName=”Service:版本:分组“ 放入spring容器。在ServiceBean中有一个ref属性指向的第一步生成的spring普通对象
  • 第三步:当spring容器启动完成后,通过事件机制dubbo开始进行服务注册到注册中心,也就是服务的导出流程
    dubbo与spring整合之@Service、@Reference注解处理过程

ServiceBean:包括@Service注解上的属性和dubbo.properties中的配置对象,并且实现了ApplicationListener接口(当spring启动,就export服务)

@Reference

  • ReferenceBean:对应ServiceBean,并且实现了FactoryBean接口(通过get方法可以得到代理对象)【放入spring的ioc容器】
  • 代理对象
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容