SPI機制

SPI的全名為Service Provider Interface,是Java實現(xiàn)面向接口的解耦機制。通過SPI,模塊之間通過接口約定,而非具體的實現(xiàn),從而使得各種不同的實現(xiàn)方案能夠可插拔。

Java里面很多公共模塊都采用SPI機制,比如日志、JDBC等等。

SPI約定

當服務的提供者,提供了服務接口的一種實現(xiàn)之后,在jar包的META-INF/services/目錄里同時創(chuàng)建一個以服務接口命名的文件。該文件里就是實現(xiàn)該服務接口的具體實現(xiàn)類。而當外部程序裝配這個模塊的時候,就能通過該jar包META-INF/services/里的配置文件找到具體的實現(xiàn)類名,并裝載實例化,完成模塊的注入。

基于這樣一個約定就能很好的找到服務接口的實現(xiàn)類,而不需要再代碼里制定。

jdk提供服務實現(xiàn)查找的一個工具類:java.util.ServiceLoader

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容