摘要:
监听器模式有三个要素: 事件源:顾名思义,事件发生的源头,比如点击的按钮,可以工作可以运作的机器人,属于被监听的对象 事件对象:这个经常和事件源混淆,它经常被用来包装事件源,或者说执行某个方法,比如点击事件,机器人程序执行 监听器:这个是监听器模式的核心,定义事件发生后的动作,通常事件对象作为监听器 阅读全文
摘要:
强软弱虚 四种引用类型 1.Java中默认的就是强引用 public class T { /** * java垃圾回收时会调用一次且只调用一次 * @throws Throwable */ @Override protected void finalize() throws Throwable { 阅读全文
摘要:
Dubbo服务端启动步骤: 1.Export dubbo service 暴露本地服务 main INFO config.AbstractConfig: [DUBBO] Export dubbo service com.alibaba.dubbo.demo.DemoService to local 阅读全文
摘要:
完成一个Spring的自定义配置一般需要5步: 1.设计配置属性和JavaBean 2.编写XSD(XML Schema)文件,它就是一个校验XML,定义了一些列的语法来规范XML 3.编写NameSpaceHandler和BeanDefinitionParser完成解析工作 4.编写spring。 阅读全文
摘要:
http://dubbo.apache.org/zh-cn/docs/source_code_guide/adaptive-extension.html 在Dubbo中,很多拓展都是通过SPI机制进行加载的,比如Protocol、Cluster、LoadBalance等。 有时,有些拓展类并不想在框 阅读全文
摘要:
1.触发创建动态代理类 private Class<?> createAdaptiveExtensionClass() { String code = createAdaptiveExtensionClassCode(); ClassLoader classLoader = findClassLoa 阅读全文
摘要:
http://www.javassist.org/tutorial/tutorial.html Java字节码以二进制的形式存储在.class文件中,每一个.class文件包含一个Java类或接口。 javassist就是一个用来处理Java字节码的类库。它可以在一个已经编译好的类中添加新的方法,或 阅读全文
摘要:
Dubbo 自己实现的SPI 用于获取一个实现类的对象 一、为什么Dubbo要自己设计一套SPI 1.原始的JDK SPI不支持缓存: Dubbo设计了缓存对象-cachedInstances 是一个 new ConcurrentHashMap<String, Holder<Object>>() 2 阅读全文
摘要:
装饰(Decorator)模式:动态的给对象增加一些职责,即增加其额外的功能 要求在不改变原类文件和适用继承的情况下,动态地扩展一个对象地功能。它是通过创建一个包装对象,也就是装饰来包裹真实地对象 特点: 1.装饰对象和真实对象具有相同地接口。这样客户端对象就能以真实对象相同地方式和装饰对象交互 2 阅读全文
摘要:
工厂模式最终可以完成 1.任意定制交通工具 2.任意定制生产过程 -- 工厂方法实现 3.任意定制产品一族 -- 抽象工厂实现 抽象工厂(Abstract Factory):提供一个创建产品族的接口,其每个子类可以生产一系列相关产品 例如: 现代人: 开 现代 car -用着热武器 AK47 吃着 阅读全文