Spring SPI
大致與 JDK 實作 Service Provider Interface 的雷同。
服務發現介面(SPI)實現差異
讀取固定文件的位置的不同
可以通過反射部分實例化,也可以全部實例化。
Spring 中,其中又以 Springboot 為主要活用 SPI 機制。
Springboot服務提供商實現
為了讓其被發現,將其存放在 Resource 底下的 META-INF/spring.factories,同時建立與服務名稱同樣命名的文件
呼叫者使用
透過 🌟 SpringFactoriesLoader.loadFactoryNames(type, classLoader) 🌟 方法, 將類別全名稱 (即包含 package 的名稱),通過反射的方式將其實例化,供呼叫者使用。
參考資料
Last updated
Was this helpful?