甜腻的嘴角|Dubbo如何通过SPI提高框架的可扩展性?( 五 )
consumer组和provide组都能激活这个filter , 同时url中指定key的value为cache
@Activate(group = {"consumer", "provider"}, value = "http://kandian.youth.cn/index/cache")public class MyCacheFilter implements MyFilter {@Overridepublic void filter() {}}测试类如下getActivateExtension有3个参数 , 依次为url, key, group
public class ActivateDemo {public static void main(String[] args) {ExtensionLoader总结一下就是 , getActivateExtension不指定组就是激活所有的Filter , 指定组则激活指定组的Filter 。 指定key则从Url中根据key取到对应的value , 假设为cache , 然后把@Activate注解中value=http://kandian.youth.cn/index/cache的Filter激活
即group用来筛选 , value用来追加 , Dubbo Filter就是靠这个属性激活不同的Filter的
ExtensionLoader的工作原理ExtensionLoader是整个Dubbo SPI的主要实现类 , 有如下三个重要方法 , 搞懂这3个方法基本上就搞懂Dubbo SPI了 。
加载扩展类的三种方法如下
- getExtension() , 获取普通扩展类
- getAdaptiveExtension() , 获取自适应扩展类
- getActivateExtension() , 获取自动激活的扩展类
代码就不放了 , 这3个方法的执行过程还是比较简单的 , 如果你有看不懂的 , 可以看我给源码加的注释 。
【甜腻的嘴角|Dubbo如何通过SPI提高框架的可扩展性?】理解了Dubbo SPI你应该就把Dubbo搞懂一半了 , 剩下就是一些服务导出 , 服务引入 , 服务调用的过程了
推荐阅读
- 甜腻的嘴角|领空安全不容侵犯!俄战机向美军亮出导弹,几天后尴尬一幕发生
- 彩色科技|Dubbo自适应扩展机制
- 甜腻的嘴角|造芯有多耗电?台积电一年用143.3亿度电!台湾都要供不起了
- 甜腻的嘴角|华为Mate40稳了,麒麟9000备货1000万片,不愁断货
- 环球网|聊天记录撒娇卖萌超甜腻,男子没想到女朋友竟是“抠脚大汉”!
- 甜腻的嘴角|爷青结!腾讯微博将于9月28日停止服务和运营
- 甜腻的嘴角|九号B80电动自行车评测:2000元不到的出行神器?
- 甜腻的嘴角|手机即将“报废”的5个前兆,一旦出现赶紧换手机
- 第一财经|唯观纽约|若美股已陷于浪漫甜腻的“La La Land”,那美国经济基本面又是什么?
- 甜腻的嘴角|刚花2499买的新手机,有一点后悔了。
