dubbo源码分析8——服务暴露概述

Posted 源码王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo源码分析8——服务暴露概述相关的知识,希望对你有一定的参考价值。

从上文中可知,com.alibaba.dubbo.config.spring.ServiceBean类是负责解析<dubbo:service/>的配置的,下面是它的类图

从类图上可知它继承了ServiceConfig类,并实现了5个接口,在这5个接口中有两个接口与服务暴露有关InitializingBean接口和ApplicationListener接口,其中InitializingBean是进行bean的初始化工作的,ApplicationListener接口是监听spring容器事件的。先通过outline视图观察一下ServiceBean类:

   从outline视图中可以发现,ServiceBean类并没做什么保存配置的工作,保存配置的工作主要是由它的父类在承担。结合源码可以看到ServiceBean类的真正作用是两个:

1. 对服务Bean的实例进行初始化,详见afterPropertiesSet()方法

2. 暴露服务,详见onApplicationEvent(ApplicationEvent event)方法,这个方法的触发时机是在spring的IOC容器完成所有的bean的实例化和初始化工作之后,会发出一个ContextRefreshedEvent类型的事件,如果我们关心该类型事件则实现ApplicationListener接口就可以,IOC容器就会在恰当的时机去调用我们实现的ApplicationListener接口中的代码逻辑, 而dubbo就是利用这个机制和时机完成了每个服务接口的暴露工作。

下文将对ServiceBean的源码进行详细分析。

以上是关于dubbo源码分析8——服务暴露概述的主要内容,如果未能解决你的问题,请参考以下文章

dubbo源码分析11——服务暴露2_doExport()方法分析

Dubbo之服务暴露源码分析

Dubbo原理和源码解析之服务暴露

Dubbo原理何源码解析之服务暴露

Dubbo源码分析系列-服务的发布

3.dubbo源码分析之API配置二(服务提供者)