java中的SPI机制
来源:互联网 发布:js统计访问量 编辑:程序博客网 时间:2024/06/05 16:54
spi概念
我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。
为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。
关键点,实现(impl)热插拔
spi机制的约定:
- 在META-INF/services/目录中创建以接口全限定名命名的文件该文件内容为Api具体实现类的全限定名
- 使用ServiceLoader类动态加载META-INF中的实现类
- 如SPI的实现类为Jar则需要放在主程序classPath中
- Api具体实现类必须有一个不带参数的构造方法
参考
- http://www.tuicool.com/articles/rINr2m
- http://www.cnblogs.com/javaee6/p/3714719.html
- http://ivanzhangwb.github.io/blog/2012/06/01/java-spi/
1 0
- java中的SPI机制
- java中的SPI机制
- java中的SPI机制
- java中的SPI机制
- java中的SPI机制
- java中的SPI机制
- java中的SPI机制
- java中的SPI机制
- java中的SPI机制
- Java中的SPI机制
- java中的SPI机制
- Java和dubbo中的SPI机制学习
- Java的SPI机制
- java spi 机制
- Java的SPI机制
- Java SPI机制
- ServiceLoader : JAVA SPI 机制
- Java spi机制
- 安卓全屏设置
- MyEclipse集成Gradle
- PKU1003 Hangover(水题)
- 蓝桥杯——生物芯片
- 大整数加减法
- java中的SPI机制
- C++中图的简单表示法
- 块元素设置inline属性不能设置宽高的解决办法
- 为整个window添加背景遮罩
- Android MarginLeft与MarginStart的区别
- matlab和C混合编程实现脉冲压缩
- 大数据分析师的卓越之道
- 山东省第四届ACM省赛题——Square Number(平方数的性质)
- java中ListView的item点击事件监听拟人理解。