最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA SPI特性及簡(jiǎn)單應(yīng)用代碼實(shí)例

 更新時(shí)間:2020年05月14日 10:39:58   作者:玄同太子  
這篇文章主要介紹了JAVA SPI特性及簡(jiǎn)單應(yīng)用代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

最近在研究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.SquareShape
com.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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java開(kāi)發(fā) 線上問(wèn)題排查命令詳解

    java開(kāi)發(fā) 線上問(wèn)題排查命令詳解

    這篇文章主要介紹了java開(kāi)發(fā) 線上問(wèn)題排查命令詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比

    關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比

    這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建線程的2種方式以及對(duì)比的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • 自定義application.yml配置項(xiàng)方式

    自定義application.yml配置項(xiàng)方式

    這篇文章主要介紹了自定義application.yml配置項(xiàng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • java線程池實(shí)現(xiàn)批量下載文件

    java線程池實(shí)現(xiàn)批量下載文件

    這篇文章主要為大家詳細(xì)介紹了java線程池實(shí)現(xiàn)批量下載文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 詳解 maven的pom.xml用<exclusion>解決版本問(wèn)題

    詳解 maven的pom.xml用<exclusion>解決版本問(wèn)題

    這篇文章主要介紹了詳解 maven的pom.xml用<exclusion>解決版本問(wèn)題的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Java集合和數(shù)組的區(qū)別

    Java集合和數(shù)組的區(qū)別

    本文主要介紹了Java集合和數(shù)組的區(qū)別。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • springboot aop添加日志方式

    springboot aop添加日志方式

    這篇文章主要介紹了springboot aop添加日志方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • JAVA中的函數(shù)接口示例詳解

    JAVA中的函數(shù)接口示例詳解

    創(chuàng)建一個(gè)自定義的Sayable接口,這是一個(gè)使用@FunctionalInterface注解的函數(shù)式接口,這篇文章主要介紹了JAVA中的函數(shù)接口,你都用過(guò)嗎,需要的朋友可以參考下
    2023-11-11
  • Java實(shí)戰(zhàn)玩具商城的前臺(tái)與后臺(tái)實(shí)現(xiàn)流程

    Java實(shí)戰(zhàn)玩具商城的前臺(tái)與后臺(tái)實(shí)現(xiàn)流程

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+JSP+SSM+Springboot+Jsp+maven+Mysql實(shí)現(xiàn)一個(gè)玩具商城系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2022-01-01
  • Spring中的InitializingBean接口的使用

    Spring中的InitializingBean接口的使用

    這篇文章主要介紹了Spring中的InitializingBean接口的使用,需要的朋友可以參考下
    2018-04-04

最新評(píng)論

邵武市| 崇阳县| 明水县| 涟源市| 翼城县| 措美县| 龙州县| 策勒县| 威远县| 南投县| 微博| 额尔古纳市| 青河县| 恩平市| 宝兴县| 闵行区| 鲜城| 岳西县| 巧家县| 余姚市| 峡江县| 福鼎市| 文昌市| 西贡区| 屏南县| 长沙县| 玛沁县| 金川县| 镇平县| 广河县| 闽侯县| 修文县| 金川县| 句容市| 兰考县| 望奎县| 许昌市| 化德县| 嘉黎县| 建宁县| 大城县|