在dubbo中,服務提供者暴露服務配置畦木。對應的配置類:com.alibaba.dubbo.config.ServiceConfig
項目整體啟動的時候,入口類是?com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler洛二,這個地方初始化的是ServiceBean.clas 也即ServiceConfig的子類馋劈,ServiceBean類實現(xiàn)了InitializingBean接口攻锰,重寫了afterPropertiesSet()方法,afterPropertiesSet()方法是在spring管理的類初始化之后調用的方法妓雾,在afterPropertiesSet()方法中調用了ServiceConfig類的export()方法娶吞,在export()方法中,調用了doExport()械姻,可見核心邏輯在doExport()中妒蛇,保留核心邏輯如下:
1
doExport()方
保留了核心邏輯,上面代碼主要做的事情就是校驗各種配置項楷拳,之后調用核心方法doExportUrls()暴露服務绣夺,下面貼出doExportUrls方法的代碼,也是保留核心邏輯
2 doExportUrls
在這個方法中欢揖,我注釋的是程序實際運行時的入參陶耍,項目地址在?demo項目地址,這個項目是我fork的dubbo源碼她混,并且加入學習時候的注釋烈钞,邏輯也很簡單,就是首先獲取所有的注冊地址坤按,之后遍歷所有的協(xié)議配置毯欣,依次將各協(xié)議的服務暴露給注冊中心