spi
来源:互联网 发布:java 建造模式 编辑:程序博客网 时间:2024/06/08 07:28
java中SPI机制初探
关键词
java、Provider、META-INF/service、SPI
是什么?
一种为接口寻找服务实现的机制。全称是:service provider interface。
有什么用?
将接口和实现之间的关系转移到程序之外,直接更换实现jar包,程序自动加载新的实现方案。
spi协议以javax.validation为例
- 接口
在接口jar中定义接口javax.validation.spi.ValidationProvider
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version></dependency>
2. 实现
在实现jar包中一定要有META-INF/services/目录,在services下有以服务接口命名的文件,文件中写明实现类,即文件META-INF/services/javax.validation.spi.ValidationProvider中写上实现的类的全名:org.hibernate.validator.HibernateValidator。
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.3.4.Final</version></dependency>
后记
java中使用spi这种设计的还有很多,比如:
0 0
- SPI
- SPI
- SPI
- SPI
- SPI
- SPI
- SPI
- spi
- spi
- SPI
- SPI
- spi
- SPI
- SPI
- spi
- SPI
- SPI
- SPI
- 播放特效
- Facebook页面受欢迎程度分析
- 基础DP
- 凑方程解
- 用命名内核对象判断程序是否有实例正在运行
- spi
- ormlite 框架对数据的版本升级
- 图像双边滤波及时间优化
- Java利用jacob实现wps转换pdf
- Tinker -- 微信Android热补丁探索
- 47、Power Query-处理典型的中国式二维表格转一维
- Cocos2d-x 3.x Helloword程序分析
- android:textStyle="italic"设置斜体失效
- C语言拓扑排序的实现