JAVA SPI特性及簡單應用代碼實例
最近在研究dubbo時,發(fā)現(xiàn)了JAVA的SPI特性。SPI的全名為Service Provider Interface,是JDK內(nèi)置的一種服務發(fā)現(xiàn)機制。
具體實現(xiàn):
1、定義一個接口
public interface IShape {
/**
* 渲染
*/
void render();
}
2、添加幾種實現(xiàn)
public class CircularShape implements IShape {
@Override
public void render() {
System.out.println(this.getClass().getName() + "正在繪制圓形");
}
}
public class SquareShape implements IShape {
@Override
public void render() {
System.out.println(this.getClass().getName() + "正在繪制正方形");
}
}
3、在META-INF/services/com.zhi.demo.IShape文件添加信息
com.zhi.demo.impl.SquareShape
com.zhi.demo.impl.CircularShape
4、測試
public class SpiTest {
public static void main(String[] args) {
ServiceLoader<IShape> loaders = ServiceLoader.load(IShape.class);
for (IShape shape : loaders) {
shape.render();
}
}
}
5、運行結果
com.zhi.demo.impl.SquareShape正在繪制正方形
com.zhi.demo.impl.CircularShape正在繪制圓形
代碼結構圖如下

6、實際應用,sum為各大數(shù)據(jù)廠商提供了java.sql.Driver接口,每個廠商提供自己的實現(xiàn)。


以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
詳解 maven的pom.xml用<exclusion>解決版本問題
這篇文章主要介紹了詳解 maven的pom.xml用<exclusion>解決版本問題的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
Java實戰(zhàn)玩具商城的前臺與后臺實現(xiàn)流程
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+JSP+SSM+Springboot+Jsp+maven+Mysql實現(xiàn)一個玩具商城系統(tǒng),大家可以在過程中查缺補漏,提升水平2022-01-01

