1.首先在dubboNamespaceHandler中配置标签解析器,解析标签之后,每个标签对应一个config配置类进行解析。
2.解析serviceBean的时候com.alibaba.dubbo.config.spring.ServiceBean#onApplicationEvent方法调用了export方法,调用了com.alibaba.dubbo.config.ServiceConfig#doExport方法,一路调用到了com.alibaba.dubbo.config.ServiceConfig#doExportUrlsFor1Protocol方法,D:/apache-maven-3.6.3/repository/com/alibaba/dubbo/2.6.2/dubbo-2.6.2-sources.jar!/com/alibaba/dubbo/config/ServiceConfig.java:513在此创建了代理对象,调用了协议池的export方法。
3.共两个地方实现了Protocol接口,并重写了export方法:分别为com.alibaba.dubbo.rpc.protocol.dubbo.dubboProtocol、com.alibaba.dubbo.registry.integration.RegistryProtocol。
在dubboProtocol类的export方法中调用com.alibaba.dubbo.rpc.protocol.dubbo.dubboProtocol#openServer,开启服务器。
在RegistryProtocol类的export方法中调用com.alibaba.dubbo.registry.support.ProviderConsumerRegTable#registerProvider方法,如果是第一次暴露地址就直接记录进注册表,之后再取就通过注册表取就可。