JAVA SPI特性及簡單應(yīng)用代碼實例
最近在研究dubbo時,發(fā)現(xiàn)了JAVA的SPI特性。SPI的全名為Service Provider Interface,是JDK內(nèi)置的一種服務(wù)發(fā)現(xiàn)機(jī)制。
具體實現(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.SquareShapecom.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、運(yùn)行結(jié)果
com.zhi.demo.impl.SquareShape正在繪制正方形com.zhi.demo.impl.CircularShape正在繪制圓形
代碼結(jié)構(gòu)圖如下
6、實際應(yīng)用,sum為各大數(shù)據(jù)廠商提供了java.sql.Driver接口,每個廠商提供自己的實現(xiàn)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 不使用XMLHttpRequest對象實現(xiàn)Ajax效果的方法小結(jié)2. 用xslt將xml解析成xhtml的代碼3. Ajax實現(xiàn)省市縣三級聯(lián)動4. Ajax原理與應(yīng)用案例快速入門教程5. ASP.NET MVC使用Log4Net記錄異常日志并跳轉(zhuǎn)到靜態(tài)頁6. PHP設(shè)計模式中的命令模式7. PHP設(shè)計模式中觀察者模式講解8. Python Pandas常用函數(shù)方法總結(jié)9. .NET 6 跨服務(wù)器聯(lián)表查詢操作MySql、Oracle、SqlServer等相互聯(lián)表10. 詳解JS前端使用迭代器和生成器原理及示例
