1.項目中的使用
ServiceLoader是Java中SPI(Service Provider Interface)的一種實現;主要用於提供給第三方實現或者擴展。
1.1 使用接口的實現類一般的方式;
及使用關鍵詞new 一個實現類賦值給接口引用。
HelloService helloService = new HelloServiceImpl();
如果需要動態的獲取一個接口的實現類,在項目比較大的時候,去進行全局掃描class來獲取最終的實現這樣代價太大。
1.2 ServiceLoader的加載方式;
1.在項目的的src/main/resources目錄下創建META-INF/services。
2.在該目錄下創建接口全路徑名稱的文件,文件內容就是實現接口的全路徑名稱。
3.編寫獲取實現
2.ServiceLoader加載源碼分析
1.ServiceLoader加載資源文件位置
2.接口的初始化