前面三篇主要是介绍如何设计的,如何实现的,这一篇,则主要集中在如何使用。实现得再好,如果不好用,也白搭
本篇介绍几个简单的使用case,包括静态使用,动态适配,自定义选择器等
前一篇 《SPI框架实现之旅二:整体设计》中,介绍了几个定义的接口,注解;叙述了实现流程;并简单的介绍了 SpiLoader中的部分实现; 本篇则主要介绍SpiLoader类的实现
SpiLoader
类图结构如下:
上一篇简单的说了一下spi相关的东西, 接下来我们准备开动,本篇博文主要集中在一些术语,使用规范的约定和使用方式
SPI的全名为Service Provider Interface,简单的总结下java spi机制的思想。我们系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。 java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制
一灰灰Blog
Java,Python,DBA, 主旨服务器,兼职全栈
Wuhan, China
文章
511
分类
99
标签
120
关注公众号,回复"加群",即刻加入技术交流群(Python,Java,Golang,微服务,高并发,DDD各技术均有涉猎,欢迎各路小伙伴一起来耍)
终点看书APP
最热最全的免费小说阅读器,全网精品小说,火热新书,追书神器,阅读必备,百万小说爱好者首选阅读器
Java / 编程技巧
DB / Mysql
开源 / ElasticSearch
Update your browser to view this website correctly. Update my browser now
×