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邏輯;