Java ServiceLoader使用和源码分析

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.接口的初始化

  

  

  

  

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章