我正在创建一个框架,该框架公开了一个供开发人员使用的API:
public interface MyAPI {
public void doSomeStuff();
public int getWidgets(boolean hasRun);
}开发人员所要做的就是根据这些API方法编写他们的项目。我还希望它们能够在运行时类路径上放置不同的“驱动程序”/“API绑定”(与JDBC或SLF4J工作方式相同),并具有API方法调用(doSomeStuff()等)。操作不同的第三方资源(文件,服务器,其他)。因此,相同的代码和API调用将映射到不同资源上的操作,具体取决于运行时类路径看到的驱动程序/绑定(即myapi-ftp、myapi-ssh、myapi-teleportation)。
如何编写(并打包)允许这样的运行时绑定的SPI,和然后将MyAPI调用映射到正确的(具体的)实现?换句话说,如果myapi-ftp允许您从FTP服务器获得getWidgets(boolean),我将如何提高(同时使用API和SPI)?
加分的具体,工作Java代码的例子!提前感谢!
发布于 2012-07-10 02:04:41
看看java.util.ServiceLoader类。
一般来说,这样的想法是:
API Jar
https://stackoverflow.com/questions/11404230
复制相似问题