概念
1、SPI是服務提供介面,JDK內建的服務提供發現機制,是Java提供的第三方實作或擴充的API,可用於啟用框架擴充和更換組件。
Java SPI的具體約定
在classpath下面時,在classpath下的META-INF/services/目錄中同時建立以服務介面命名的檔案。這個文件是實現這個服務介面的具體實作類別。
當外部程式組裝該模組時,您可以透過jar包META-INF/services/中的設定檔找到特定的實作類別名稱,並載入實例,完成模組注入。
2、呼叫者根據實際使用需求啟用、擴充或更換框架的實作策略。
常見的範例:
資料庫驅動程式載入介面實作類別載入。
JDBC負載驅動不同類型的資料庫。
記錄日誌介面實作類別載入。
SLF4J載入不同供應商的日誌實作類別。
Spring
SSpring中,SPI被廣泛使用,例如:Servlet3.0規範實作ServletContainerInitializer,自動型別轉換TypeConversionSPI(ConverterSPI,FormatterSPI)等等。
Java中的集合主要分為四類:
1、List列表:有順序的,可重複的;
2、Queue佇列:有序,可重複的;
3、Set集合:不可重複;
4、Map映射:無序,鍵唯一,值不唯一。
以上是java的SPI是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!