代码拉取完成,页面将自动刷新
基于 dubbo.jar 内的 META-INF/spring.handlers
配置,Spring 在遇到 dubbo 名称空间时,会回调 DubboNamespaceHandler
。
所有 dubbo 的标签,都统一用 DubboBeanDefinitionParser
进行解析,基于一对一属性映射,将 XML 标签解析为 Bean 对象。
在 ServiceConfig.export()
或 ReferenceConfig.get()
初始化时,将 Bean 对象转换 URL 格式,所有 Bean 属性转成 URL 的参数。
然后将 URL 传给协议扩展点,基于扩展点的扩展点自适应机制(Dubbo SPI),根据 URL 的协议头,进行不同协议的服务暴露或引用。
META-INF/spring.handlers
和 META-INF/spring.schemas
dubbo.jar/META-INF/spring.handlers
下定义的DubboNamespaceHandler
的 init() 方法DubboBeanDefinitionParser
的 parse() 方法,通过RootBeanDefinition将serviceBean 暴露给 spring。(实际调用AutowireCapableBeanFactory.registerBeanDefinition)ApplicationListener<ContextRefreshedEvent>
,Spring 容器 refresh() 之后,发送 Event 事件,然后 ServiceBean 做服务暴露操作。(服务暴露)其中比较重要的是 ServiceBean 和 ReferenceBean。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。