SPI 全称为 Service Provider Interface,是⼀种服务发现机制,本质是将接⼝实现类的全限定名配置在⽂件中,并由服务加载器读取配置⽂件,加载实现类,这样可以在运⾏时,动态为接⼝替换实现类。
Dubbo也正是通过SPI机制实现了众多的扩展功能,⽽且dubbo没有使⽤java原⽣的SPI机制,⽽是对其进⾏了增强和改进。
SPI在dubbo应⽤很多,包括协议扩展、集群扩展、路由扩展、序列化扩展等等。使⽤⽅式可以在META-INF/dubbo⽬录下配置:
key=com.xxx.value
然后通过dubbo的ExtensionLoader按照指定的key加载对应的实现类,这样做的好处就是可以按需加载,性能上得到优化
网友评论