dubbo源码解析20
⑴ Dubbo启动源码解析一
这次讲 bbo-spring-boot-starter 启动方式,所以入口就是Spring的SPI机制;
首先在META-INF/spring.factories配置下,配置了org.apache.bbo.spring.boot.autoconfigure.DubboAutoConfiguration类,在启动时,则会把DubboAutoConfiguration类注册到spring容器中;
我们来看下DubboAutoConfiguration
先看启动流程
我们先看下生产者端的启动流程,首先是在Spring中注册类
该类实现了接口,则在Spring容器初始化时,会调用方法
我们会看到,这个时候会去注册类,这个类我们等流程到了在分析,我们先按启动流程看过去;resolvePackagesToScan方法先获取到需要扫描的包 ,然后再调用registerServiceBeans去注册相关实例,我们重点来看下registerServiceBeans方法
接下来,我们主要去看下registerServiceBean方法
接下来,我们来看下buildServiceBeanDefinition方法
到这,ServiceBean注册成功,ServiceBean类很重要,每个Dubbo service实例都对应一个ServiceBean,相关配置都在ServiceBean中;我们再回到开始注册的类
类继承了,实现了ApplicationListener,主要监听了Spring容器生命周期,我们看下onApplicationContextEvent方法
我们可以看到,当Spring容器启动成功时,会调用bboBootstrap.start();
接下来,主要逻辑在ServiceBean中,这个export方法在其父类ServiceConfig中,我们下一篇主要讲ServiceConfig逻辑;