概述
对spi机制的使用在一次对schemacrawler(一个数据库元数据爬虫框架)的使用中提升了很多。
基础了解:http://blog.csdn.net/qq_33793432/article/details/73112302
具体的使用:
我使用spi机制来调用不同数据库实现的分页方法。通过一个数据库类型来查找对应的实现类。
对外的接口或抽象类A
你可以在A中定义实现的大体框架。
可以看到这个对外的抽象类接口中要求实现类必须提供的东西,其中对我最主要的还是那个接口IProduceSql , 它定义了产生sql语句的方法,要求实现类必须实现。扫描实现类
在自己的程序中还要对所有的实现类进行扫描注册
还是通过使用ServiceLoader 来扫描实现类。这里我使用一个集合装入我所有的实现。
我的使用场景是,所有的实现类都提供了一个类型格式,我把类型格式为key,对应的实现类为value放入一个map中。
在具体的使用时,根据url格式的不同就可以调用不同的实现类。如何利用spi机制实现暴露的接口或抽象类
举例我的mysql实现,这是另外一个项目:
我继承了对外的抽象类,提供了主要的MysqlProduceSqlImpl实现类。那么如何让它知道我实现了呢。
在根目录下新建 META-INF/services目录
新建对外暴露的类A全路径在里面写入自己实现类的全路径
在主程序中引用这个mysql子项目。ServiceLoader就可以扫描到。
最后
以上就是粗心指甲油为你收集整理的SPI机制的一次具体使用的全部内容,希望文章能够帮你解决SPI机制的一次具体使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复