09 2017 档案

摘要:ServiceBean的afterPropertiesSet方法是实现了InitializingBean,还是准备先做宏观分析,然后再做细致分析。下面先宏观分析: 通过上面的分析对整个方法在做什么有了大致的了解, 下面进行细致分析,对里面的一段段代码分别展开分析: 1 . 获取Provider配置 阅读全文
posted @ 2017-09-27 17:15 杭州胡欣 阅读(1210) 评论(0) 推荐(0) 编辑
摘要:从上文中可知,com.alibaba.dubbo.config.spring.ServiceBean类是负责解析<dubbo:service/>的配置的,下面是它的类图 从类图上可知它继承了ServiceConfig类,并实现了5个接口,在这5个接口中有两个接口与服务暴露有关Initializing 阅读全文
posted @ 2017-09-26 17:51 杭州胡欣 阅读(532) 评论(0) 推荐(0) 编辑
摘要:dubbo的配置其实就是建立在spring的命名空间的配置机制之上的。在dubbo的jar包的META-INF目录下会有spring.handlers这个文件,用来配置spring的命名空间和解析类的对应关系。打开spring.handlers文件,可知dubbo的命名空间配置的处理类为com.al 阅读全文
posted @ 2017-09-25 17:49 杭州胡欣 阅读(1150) 评论(0) 推荐(0) 编辑
摘要:在 ExtensionLoader 类的loadFile方法中有下图的这段代码: 类如现在这个ExtensionLoader中的type 是Protocol.class,也就是SPI接口的实现类中XxxProtocol类中有这样的构造函数 public XxxProtocol ( Protocol 阅读全文
posted @ 2017-09-22 17:51 杭州胡欣 阅读(923) 评论(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 杭州胡欣 阅读(2536) 评论(0) 推荐(0) 编辑
摘要:ExtensionFactory的源码: ExtensionFactory的作用就类似spring框架中的IOC的作用,正是因为JDK的SPI机制比较简单,所以duboo框架才重写了SPI机制,并实现了IOC和AOP的功能。本篇先介绍它的IOC的功能,根据上篇的分析可知,IOC功能的代码出现在Ext 阅读全文
posted @ 2017-09-20 13:47 杭州胡欣 阅读(2196) 评论(0) 推荐(0) 编辑
摘要:ExtensionLoader类是整个SPI的核心类,每个SPI都会对应一个ExtensionLoader类实例,这个类的构造方法如下: 里面的objectFactory对应的就是ExtensionFactory类的实例,通过源码能发现,ExtensionFactory自身也是一个SPI接口,那么它 阅读全文
posted @ 2017-09-19 17:13 杭州胡欣 阅读(984) 评论(0) 推荐(0) 编辑
摘要:SPI机制中的SPI实现类的读取和预处理是由ExtensionLoader类的loadFile方法来完成的 loadFile方法的作用是读取dubbo的某个SPI接口的spi描述文件,然后进行缓存,缓存,缓存(很重要,说三遍) ,读取的位置是在jar包下的META-INF\dubbo\interna 阅读全文
posted @ 2017-09-18 15:40 杭州胡欣 阅读(1130) 评论(0) 推荐(0) 编辑
摘要:Class类的isAssignableFrom是个不常用的方法,感觉这个方法的名字取得不是很好,所以有必要在此解析一下,以免在看源码时产生歧义,这个方法的签名如下: 由方法签名可见是一个本地方法,即C代码编写的。 以下是JDK中的注释: Determines if the class or inte 阅读全文
posted @ 2017-09-17 19:11 杭州胡欣 阅读(25606) 评论(0) 推荐(7) 编辑
摘要:插件机制是Dubbo用于可插拔地扩展底层的一些实现而定制的一套机制,比如dubbo底层的RPC协议、注册中心的注册方式等等。具体的实现方式是参照了JDK的SPI思想,由于JDK的SPI的机制比较简单,满足不了一些复杂的需求,所以dubbo重写了一套SPI机制,实现了类似spring的IOC和AOP的 阅读全文
posted @ 2017-09-14 14:29 杭州胡欣 阅读(961) 评论(0) 推荐(0) 编辑
摘要:Dubbo |ˈdʌbəʊ| 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 自动发现: 基于注册中心目录服务, 阅读全文
posted @ 2017-09-14 09:38 杭州胡欣 阅读(409) 评论(0) 推荐(0) 编辑
摘要:目前很多互联网app项目,都是采用这样的一个基本项目结构:即由后端提供Restful的api接口,然后供前端例如IOS、Android或者H5端去调用,如图: 在这种结构下,后台的代码分层常规一般会有两种做法: 方式1:后台代码分为web层、service层、dao层,其中service层直接暴露成 阅读全文
posted @ 2017-09-04 17:33 杭州胡欣 阅读(9884) 评论(2) 推荐(2) 编辑

点击右上角即可分享
微信分享提示