Service Provider Interface;
JDK提供的一种服务发现的机制;主要是用于厂商实现JDK的只用。
比如说打印机,JDK提供了一个驱动接口com.printl.printerDriver;爱普生公司将会提供 com.epson.EpsonPrinterDriver,惠普会提供com.hp.HPDriver;
然后,ServiceLoader登场,他是JDK提供的专门用于发现服务的类;SPI的服务发现约定是在各个独立厂商提供的jar里面的META-INF文件夹下的services文件夹内,在驱动接口同名文件内定义驱动实现的全名。
比如,打印机为例,HP就会在在自己提供的jar包内,提供/META-INF/services里面的com.print.printerDriver文件内,添加com.hp.HPDriver文字;
ServiceLoader.load(printerDriver.class)就会到相应的jar包内找到文件,加载里面定义的类。其实和IoC比较像,都是根据字符串来加载类;但是IoC是在本项目内实现反射,SPI则是在产品和供应商之间实现反射。

dubbo就是采用了SPI方式,注意打包正确的姿势是在src/main/resources下面添加META-INF文件夹以及dubbo文件夹,最后下面添加com.alibaba.dubbo.rpc.Filter文件。

最新文章

  1. Windows系统变量
  2. struts2的文件上传
  3. js-回车事件控制
  4. 存储过程获取最后插入到数据表里面的ID
  5. 列表框QListWidget类
  6. iOS 开发 NSLog调试小技巧
  7. 关于iframe调用父页面元素操作
  8. Android 介绍spydroid每个包的大体功能
  9. Reorder the Books(规律)
  10. Oracle两张表关联批量更新其中一张表的数据
  11. 图解HTTP,TCP,IP,MAC的关系
  12. SQL攻击-预编译--缓存
  13. centos 切换nginx跟apache环境
  14. Oracle 客户端连接时报ORA-01019错误总结
  15. RabbitMQ 远程 IP 访问 解决办法 -摘自网络
  16. POJ 1185 炮兵阵地(状压DP)题解
  17. Word2007文档中怎么输入上标下标
  18. 【Windows使用笔记】Windows科研软件
  19. matplotlib模块之子图画法
  20. 搭建MQTT代理服务器

热门文章

  1. Vue打包上线部署
  2. taskset -pc PID 查看线程占用cpu核
  3. 重温ASP.NET WebAPI(二)进阶
  4. js常用正则表达式,滚蛋吧!你们测试组bug,让你挑
  5. fegin---@FeginClient参数介绍
  6. 20165202 2017-2018-2 《Java程序设计》第6周学习总结
  7. Python中列表生成式和字典生成式练习
  8. ROW_NUMBER() OVER(PARTITION BY)
  9. AS3帮助手册
  10. 《Drools7.0.0.Final规则引擎教程》第4章 4.3 日历