JAVA SPI特性及簡(jiǎn)單應(yīng)用代碼實(shí)例
最近在研究dubbo時(shí),發(fā)現(xiàn)了JAVA的SPI特性。SPI的全名為Service Provider Interface,是JDK內(nèi)置的一種服務(wù)發(fā)現(xiàn)機(jī)制。
具體實(shí)現(xiàn):
1、定義一個(gè)接口
public interface IShape { /** * 渲染 */ void render();}
2、添加幾種實(shí)現(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、測(cè)試
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、實(shí)際應(yīng)用,sum為各大數(shù)據(jù)廠商提供了java.sql.Driver接口,每個(gè)廠商提供自己的實(shí)現(xiàn)。


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. IntelliJ IDEA導(dǎo)入jar包的方法2. docker鏡像完全卸載的操作步驟3. IntelliJ IDEA配置Tomcat服務(wù)器的方法4. idea刪除項(xiàng)目的操作方法5. 使用Maven 搭建 Spring MVC 本地部署Tomcat的詳細(xì)教程6. IntelliJ IDEA調(diào)整字體大小的方法7. idea打開(kāi)多個(gè)窗口的操作方法8. idea導(dǎo)入maven項(xiàng)目的方法9. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法10. IntelliJ IDEA安裝插件的方法步驟

網(wǎng)公網(wǎng)安備