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?