上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 20 下一页
摘要: 今天在看dubbo的源码过程中,看到它提供了一个正则式来匹配用户配置的注册中心的地址,这个正则式代码是在一个常量类com.alibaba.dubbo.common.Constants中, 调用的代码是在UrlUtils类中 这个正则式的作用这里分析一下: \s : 表示一个或多个空白字符 * : 匹 阅读全文
posted @ 2017-10-17 15:54 杭州胡欣 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 在doExport方法中,对要暴露的服务进行了一系列的检查,检查provider,application,module,registries,monitor这些参数是否为空,是否是GenericService类型的服务,检查要注册的bean的引用和方法等。在方法的最后会调用doExportUrls方 阅读全文
posted @ 2017-10-16 17:50 杭州胡欣 阅读(1157) 评论(3) 推荐(0) 编辑
摘要: ServiceConfig类中的export()方法,是dubbo服务暴露的入口方法,被触发的时机有两个: 1. spring容器初始化完成所有的bean实例后,通过事件机制触发 2. 实现InitializingBean的方法中进行触发 export()方法源码如下: 通过查看源码可知,expor 阅读全文
posted @ 2017-10-16 10:28 杭州胡欣 阅读(718) 评论(0) 推荐(0) 编辑
摘要: ServiceBean的afterPropertiesSet方法是实现了InitializingBean,还是准备先做宏观分析,然后再做细致分析。下面先宏观分析: 通过上面的分析对整个方法在做什么有了大致的了解, 下面进行细致分析,对里面的一段段代码分别展开分析: 1 . 获取Provider配置 阅读全文
posted @ 2017-09-27 17:15 杭州胡欣 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: 从上文中可知,com.alibaba.dubbo.config.spring.ServiceBean类是负责解析<dubbo:service/>的配置的,下面是它的类图 从类图上可知它继承了ServiceConfig类,并实现了5个接口,在这5个接口中有两个接口与服务暴露有关Initializing 阅读全文
posted @ 2017-09-26 17:51 杭州胡欣 阅读(528) 评论(0) 推荐(0) 编辑
摘要: dubbo的配置其实就是建立在spring的命名空间的配置机制之上的。在dubbo的jar包的META-INF目录下会有spring.handlers这个文件,用来配置spring的命名空间和解析类的对应关系。打开spring.handlers文件,可知dubbo的命名空间配置的处理类为com.al 阅读全文
posted @ 2017-09-25 17:49 杭州胡欣 阅读(1139) 评论(0) 推荐(0) 编辑
摘要: 在 ExtensionLoader 类的loadFile方法中有下图的这段代码: 类如现在这个ExtensionLoader中的type 是Protocol.class,也就是SPI接口的实现类中XxxProtocol类中有这样的构造函数 public XxxProtocol ( Protocol 阅读全文
posted @ 2017-09-22 17:51 杭州胡欣 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 总结: 1. 获取某个SPI接口的adaptive实现类的规则是: (1)实现类的类上面有Adaptive注解的,那么这个类就是adaptive类 (2)实现类的类上面没有Adaptive注解,但是在方法上有Adaptive注解,则会动态生成adaptive类 2 .生成的动态类的编译类是:com.alibaba.dubbo.common.compiler.support.AdaptiveCompiler类 3. 动态类的本质是可以做到一个SPI中的不同的Adaptive方法可以去调不同的SPI实现类去处理。使得程序的灵活性大大提高。这才是整套SPI设计的一个精华之所在 阅读全文
posted @ 2017-09-21 14:30 杭州胡欣 阅读(2516) 评论(0) 推荐(0) 编辑
摘要: ExtensionFactory的源码: ExtensionFactory的作用就类似spring框架中的IOC的作用,正是因为JDK的SPI机制比较简单,所以duboo框架才重写了SPI机制,并实现了IOC和AOP的功能。本篇先介绍它的IOC的功能,根据上篇的分析可知,IOC功能的代码出现在Ext 阅读全文
posted @ 2017-09-20 13:47 杭州胡欣 阅读(2183) 评论(0) 推荐(0) 编辑
摘要: ExtensionLoader类是整个SPI的核心类,每个SPI都会对应一个ExtensionLoader类实例,这个类的构造方法如下: 里面的objectFactory对应的就是ExtensionFactory类的实例,通过源码能发现,ExtensionFactory自身也是一个SPI接口,那么它 阅读全文
posted @ 2017-09-19 17:13 杭州胡欣 阅读(971) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 20 下一页