ServiceLoader

ServiceLoader 可用于获取扩展给定类型(=服务)的类的实例,这些类在 .jar 文件中打包的文件中指定。扩展/实现的服务通常是接口,但这不是必需的。

扩展/实现类需要为 ServiceLoader 提供零参数构造函数来实例化它们。

要通过 ServiceLoader 发现,需要将包含所实现服务的完全限定类型名称的文本文件存储在 jar 文件中的 META-INF/services 目录中。此文件包含一个实现每行服务的类的完全限定名称。