初探Dubbo源码啊,随笔记

今日突然对spring的自定义注解有了兴趣,花了一点时间大致看了下,

Spring自定义通过 WETA-INF  目录下的 spring.schemas 与spring.handles 指定了xml的命名空间处理器与命名空间,通过这个来实现自定义的<标签>与<注解>编程,

此处我查看了dubbo的源码,dubbo/config/spring/schema/DubboNamespaceHandler主要为明明空间处理解析器,初始化注册了一下几个配置解析,

其中annotationBean主要为dubbo的自定义注解解析器,其他的则为自定义标签的解析器,此次主要看注解的解析实体AnnotationBean:

AnnotationBean的参数annotationPackage,就是在beandefinition创建时,从xml中读取到spring中。

源码通过ClassPathBeanDefinitionScanner. doScan扫描annotationPackage下所有的文件。配置成bean的类会定义成BeanDefinition,注册到spring。

18年初回顾了一下,看了一个引起回忆的文章 http://blog.csdn.net/jnqqls/article/details/45371785

依旧是通过spring 的  spring.handlers 进行文件加载,通过继承BeanDefinitionParser进行bean的解析,通过RootBeanDefinition进行bean的注入

而dubbo自己的bean通过继承DisposableBean, BeanFactoryPostProcessor, BeanPostProcessor, ApplicationContextAware实现了spring不同加载周期的阶段性功能

引用:

AnnotationBean的参数annotationPackage,就是在beandefinition创建时,从xml中读取到spring中。

源码通过ClassPathBeanDefinitionScanner.doScan扫描annotationPackage下所有的文件。配置成bean的类会定义成BeanDefinition,注册到spring

 

posted on 2017-07-31 13:52  Frankie_M  阅读(155)  评论(0编辑  收藏  举报

导航