java补漏-spi机制

SPI的全名为Service Provider Interface.大多数开发人员可能不熟悉,因为这个是针对厂商或者插件的。在java.util.ServiceLoader的文档里有比较详细的介绍。简单的总结下java spi机制的思想。我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。 java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。
https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html
http://www.cnblogs.com/javaee6/p/3714719.html

推荐阅读更多精彩内容

  • 本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参...
    caison阅读 106,815评论 25 144
  • 本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参...
    哥本哈登_sketch阅读 167评论 0 1
  • 本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参...
    简祥阅读 893评论 0 0
  • 1.jdk SPI介绍 SPI 全称为 Service Provider Interface,是一种服务发现机制。...
    ElevenKing阅读 1,150评论 0 5
  • 当时没有说的话,事后也不会说了,因为心境变了,心态也变了,对当时所拥有的心情,已不再有,有的只是事后的冷静。当时觉...
    一直走别回头M阅读 131评论 0 0
  • 风吹 掠过蒲公英 俄而 空中一片紫色迷情 飘扬 肆意的纷飞 偶然触碰着土 散发出无尽柔情 也有一些 飞上蓝天 留下...
    上官雅之阅读 570评论 9 21
  • 高手说话,可能简单几句,就能让对话者茅塞顿开。高手说话,没有华丽的词语,却能让与之沟通的人如沐春风。那么高手说话的...
    听书人_8795阅读 38评论 0 0
  • 周末带娃在沙河公园玩,爸爸牵着弟弟在一旁,哥哥突然尿急,我便带他去厕所。 我守在男生厕门口,等哥哥拉完尿出来,他却...
    皓熹阅读 126评论 0 2
  • 自离职有三月没有上班了,今晚翻开手账本记账,突然危机意识加重。我想帮忙承担一些,但近日以来求职状态不佳。大多都是课...
    小旺吧阅读 1,580评论 16 53