向服务提供商公开 Java 服务提供商接口

Expose a Java Service Provider Interface to Service Providers

我正在尝试为 plugin/apps 创建一个框架,我想我已经决定在 Java 中使用服务提供商接口 (SPI) 来实现这一点。最终的愿景是人们可以下载插件(如应用程序商店),然后将 jar 放到一个文件夹中,他们将使用现有程序。

所以我有一个 class PluginInterface 作为我的 SPI。我希望所有插件都实现此 class(它具有 doesAccepthandle 等基本方法)。由于第 3 方将创建服务提供者,我如何让他们在代码中引用此 Java 接口(以便他们可以实现它),而不实际向他们提供主应用程序的源代码?

创建两个 JAR api 并在 impl 中放置您的应用程序,并将您需要与第三方开发人员共享的任何代码放在 api 中。

示例:jaxb-api.jar 和 jaxb-impl.jar