SPI: Service Provider Interface
2024-08-25 06:25:23
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文件。
最新文章
- Windows系统变量
- struts2的文件上传
- js-回车事件控制
- 存储过程获取最后插入到数据表里面的ID
- 列表框QListWidget类
- iOS 开发 NSLog调试小技巧
- 关于iframe调用父页面元素操作
- Android 介绍spydroid每个包的大体功能
- Reorder the Books(规律)
- Oracle两张表关联批量更新其中一张表的数据
- 图解HTTP,TCP,IP,MAC的关系
- SQL攻击-预编译--缓存
- centos 切换nginx跟apache环境
- Oracle 客户端连接时报ORA-01019错误总结
- RabbitMQ 远程 IP 访问 解决办法 -摘自网络
- POJ 1185 炮兵阵地(状压DP)题解
- Word2007文档中怎么输入上标下标
- 【Windows使用笔记】Windows科研软件
- matplotlib模块之子图画法
- 搭建MQTT代理服务器
热门文章
- Vue打包上线部署
- taskset -pc PID 查看线程占用cpu核
- 重温ASP.NET WebAPI(二)进阶
- js常用正则表达式,滚蛋吧!你们测试组bug,让你挑
- fegin---@FeginClient参数介绍
- 20165202 2017-2018-2 《Java程序设计》第6周学习总结
- Python中列表生成式和字典生成式练习
- ROW_NUMBER() OVER(PARTITION BY)
- AS3帮助手册
- 《Drools7.0.0.Final规则引擎教程》第4章 4.3 日历