摘要:
ExtensionFactory的源码: ExtensionFactory的作用就类似spring框架中的IOC的作用,正是因为JDK的SPI机制比较简单,所以duboo框架才重写了SPI机制,并实现了IOC和AOP的功能。本篇先介绍它的IOC的功能,根据上篇的分析可知,IOC功能的代码出现在Ext 阅读全文
摘要:
ExtensionLoader类是整个SPI的核心类,每个SPI都会对应一个ExtensionLoader类实例,这个类的构造方法如下: 里面的objectFactory对应的就是ExtensionFactory类的实例,通过源码能发现,ExtensionFactory自身也是一个SPI接口,那么它 阅读全文
摘要:
SPI机制中的SPI实现类的读取和预处理是由ExtensionLoader类的loadFile方法来完成的 loadFile方法的作用是读取dubbo的某个SPI接口的spi描述文件,然后进行缓存,缓存,缓存(很重要,说三遍) ,读取的位置是在jar包下的META-INF\dubbo\interna 阅读全文
摘要:
Class类的isAssignableFrom是个不常用的方法,感觉这个方法的名字取得不是很好,所以有必要在此解析一下,以免在看源码时产生歧义,这个方法的签名如下: 由方法签名可见是一个本地方法,即C代码编写的。 以下是JDK中的注释: Determines if the class or inte 阅读全文
摘要:
插件机制是Dubbo用于可插拔地扩展底层的一些实现而定制的一套机制,比如dubbo底层的RPC协议、注册中心的注册方式等等。具体的实现方式是参照了JDK的SPI思想,由于JDK的SPI的机制比较简单,满足不了一些复杂的需求,所以dubbo重写了一套SPI机制,实现了类似spring的IOC和AOP的 阅读全文
摘要:
Dubbo |ˈdʌbəʊ| 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 自动发现: 基于注册中心目录服务, 阅读全文
摘要:
目前很多互联网app项目,都是采用这样的一个基本项目结构:即由后端提供Restful的api接口,然后供前端例如IOS、Android或者H5端去调用,如图: 在这种结构下,后台的代码分层常规一般会有两种做法: 方式1:后台代码分为web层、service层、dao层,其中service层直接暴露成 阅读全文
摘要:
只是举个例子: 由于 LambdaInterface 接口只有一个方法,且这个接口方法只有一个参数,且接口方法的实现只有一句代码,且这句代码只接收一个接口方法传入的参数,此时就符合Lambda表达式的精简要求了,所以 阅读全文
摘要:
以一个实际工作为例,在一个金融系统中,从业务上看有投资人和借款人这两类用户,但从用户类别上看有企业用户和个人用户,请问建表时如何做比较好。 方式一: user表 user_person表、user_enterprise表 方式二: user表 user_investor 投资人表 、 user_bo 阅读全文
摘要:
在之前博客中已经指出log4j2可以与不同的日志框架进行适配,这里举一些实际应用进行说明: 1.比如我们在项目中使用了log4j2作为日志器,使用了log4j-api2.6.2.jar和log4j-core2.6.2.jar。但项目中引用了一些中间件(例如activemq),而由于activemq用 阅读全文