我正在创建一个公开 API 供开发人员使用的框架:
public interface MyAPI {
public void doSomeStuff();
public int getWidgets(boolean hasRun);
}
开发人员所要做的就是针对这些 API 方法对他们的项目进行编码。我还希望他们能够在运行时类路径上放置不同的“驱动程序”/“API 绑定”(与 JDBC 或 SLF4J 的工作方式相同)并让 API 方法调用(doSomeStuff()
等)在不同的第 3 方资源(文件,服务器等)。因此,相同的代码和 API 调用将映射到不同资源上的操作,具体取决于运行时类路径看到的驱动程序/绑定(即myapi-ftp
、myapi-ssh
、myapi-teleportation
)。
如何编写(和打包)允许此类运行时绑定的 SPI,然后将调用映射MyAPI
到正确的(具体)实现?换句话说,如果myapi-ftp
允许您getWidgets(boolean)
从 FTP 服务器访问,我将如何实现(同时使用 API 和 SPI)?
具体的工作 Java 代码示例的奖励积分!提前致谢!