SPI加載機制


SPI ,全稱為 Service Provider Interface,是一種服務發現機制。它通過在ClassPath路徑下的META-INF/services文件夾查找文件,自動加載文件里所定義的類。

使用SPI:

1.定義SPI接口

2.定義SPI接口實現類

 

 

3.在資源文件目錄下創建 META-INF/services 目錄,在目錄下添加SPI接口全限定類名文件

 

 

4.在創建的文件里添加SPI接口實現類的全限定類名

 

 

5.定義執行方法,ServiceLoader.load()或Service.providers()兩個方法加載所定義的類

6.通過上面說到的兩個類各自實現的Iterator 獲取實現類

 

 

 

原理剖析:

1.為什么要在ClassPath:META-INF/services 下創建文件?

源碼里定義的路徑

2.通過什么實現的?

實現一個Iterator並傳入加載類型和加載器,如果沒有實現加載器,會使用默認加載器Thread.currentThread().getContextClassLoader() 獲取實現類。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM