摘要: 上一篇主要分析了extensionLoader的获取,以及获取extension的第一种方式,即通过装饰类或者动态代理的方式,今天我们首先从获取extension的第二种方式说起。 下面讨论getExtension(String name) 先从这个方法的代码跟踪开始, 这里省略了比较多的内容,有了 阅读全文
posted @ 2018-10-24 02:15 Europa_Universalis 阅读(621) 评论(0) 推荐(0) 编辑
摘要: dubbo为什么不采用jdk的spi? jdk标准的spi会一次性实例化扩展点的所有实现,如果有扩展实现初始化很耗时,或者有的扩展实现没有使用到也会被加载,会造成资源浪费。 dubbo增加了对扩展点的ioc和aop的支持,一个扩展点可以直接setter注入其他的扩展点。 dubbo spi的一些约定 阅读全文
posted @ 2018-10-16 10:45 Europa_Universalis 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 从dubbo-demo开始,通过观察日志可以总结出dubbo的整体架构如上,之后的章节从架构出发探索源码。 阅读全文
posted @ 2018-10-13 22:59 Europa_Universalis 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 假设要交换的两个变量分别是A,B。 第一种方法,使用一个中间变量C: 此方式简单明了,但需要借助额外的缓存空间。 第二种方法,巧妙利用加减法来实现数值交换: 可以通过思考每一步的结果来加以说明, 最终完成了A,B的交换。 第三种方法,利用位运算中的异或运算来实现: 考虑异或运算的几个特点: 交换律: 阅读全文
posted @ 2017-06-21 20:01 Europa_Universalis 阅读(580) 评论(0) 推荐(0) 编辑