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