假设我有一个服务接口com.example.Service
。
对于测试,我定义了一个
src/test/resources/META-INF/services/com.example.Service
包含的文件
com.example.sometest.MockServiceImpl
实现MockServiceImpl
接口。
现在,当执行 aServiceLoader.load(Service.class)
并迭代结果时,myMockServiceImpl
总是会再次实例化。javadoc forServiceLoader
声明它确实维护了一个缓存,但我的模拟服务似乎没有被缓存。
为什么会这样,我如何获得ServiceLoader
缓存它?