dubbo基于spring的扩展点做的扩展
2019-09-10 22:37:44 45 举报
AI智能生成
dubbo是怎么通过实现spring的各个扩展点来达到服务暴露和服务引用的目的
作者其他创作
大纲/内容
dubbo基于spring的扩展点做的扩展
service配置扫描
xml配置扫描
实现spring扩展方式:Spring自定标签
底层definition定义类类:ServiceBean
实现扩展接口:InitializingBean/DisposableBean
实现扩展点:InitializingBean.afterPropertiesSet来进行服务暴露
DisposableBean.destroy:将服务取消暴露
纯注解EnableDubbo
底层配置扫描类ServiceAnnotationBeanPostProcessor
实现Spring扩展点接口BeanDefinitionRegistryPostProcessor
实现扩展点BeanDefinitionRegistryPostProcessor.postProcessBeanDefinitionRegistry进行配置信息扫描
annotatiionBean驱动注解
底层扫描类:AnnotationBean
实现的扩展接口:BeanFactoryPostProcessor/BeanPostProcessor/DisposableBean
实现的扩展点方法
BeanFactoryPostProcessor.postProcessBeanFactory:通过Spring上下文初始化dubbo service的beanDefinition扫描器并将service的BeanDefinition信息扫描到spring上下文下
BeanPostProcessor.postProcessAfterInitialization:通过将有被dubbo service注释的bean进行服务暴露
reference扫描
底层definition定义类类:ReferenceBean
实现扩展点:InitializingBean.afterPropertiesSet来将reference配置信息包装成服务引用invoker
底层配置扫描类ReferenceAnnotationBeanPostProcessor
实现Spring扩展点接口InstantiationAwareBeanPostProcessorAdapter/MergedBeanDefinitionPostProcessor/DisposableBean
实现扩展点MergedBeanDefinitionPostProcessor.postProcessMergedBeanDefinition:加载当前bean上被@Reference标注的属性的reference配置信息并保持到缓存中
实现扩展点InstantiationAwareBeanPostProcessorAdapter.postProcessPropertyValues:将当前bean下的reference配置信息包装成服务引用invoker
DisposableBean.destroy:将服务服务引用的invoker销毁
BeanFactoryPostProcessor.postProcessBeanFactory:通过Spring上下文初始化dubbo service的beanDefinition扫描器并将service的BeanDefinition信息扫描到spring上下文下(加载dubbo service时使用的)
BeanPostProcessor.postProcessBeforeInitialization:加载当前bean上被@Reference标注的属性的reference配置信息并包装成服务引用invoker
0 条评论
回复 删除
下一页