摘要: 【dubbo为什么不采用JDK自带的SPI】 1.JDK自带的SPI(ServiceLoader)会一次性实例化扩展点所有实现,基本只能通过遍历全部获取,也就是接口的实现类全部加载并实例化一遍,如果我们不想使用某些类,它也会被加载并且实例化,这就导致了浪费。 2.增加了对扩展点IOC和AOP的支持, 阅读全文
posted @ 2018-09-05 01:20 HigginCui 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 【SPI的设计目标】 面向对象的设计里,模块之间是基于接口编程,模块之间不对实现类进行硬编码。 一旦代码里设计具体的实现类,就违法了可插拔的原则,如果需要替代一种实现,就要修改代码。 为了实现在模块装配的时候,不在模块里面写死代码,就需要一种服务发现机制。 Java spi 就是提供了这样一种机制: 阅读全文
posted @ 2018-09-05 00:51 HigginCui 阅读(445) 评论(0) 推荐(0) 编辑