我正在创建一个小型的爱好Java任务/待办事项应用程序。我希望能够为其编写插件,这些插件将存储在某个目录中,可能位于plugins
旁边的myapplication.jar
目录中。
我对如何加载这些插件有一些想法,我想编写一个插件创建者可以使用的接口,例如SomeActionInterface
,当实现该接口时,允许插件向SomeAction
添加功能。 / p>
我的问题是,SomeActionInterface
到哪里去了,插件创建者将如何访问所述界面?
接口是进入用户应该在其类路径中加载的主myapplication.jar
中,还是进入单独的myapplication-plugininterfaces.jar
中?
答案 0 :(得分:1)
通常,您会公开SPI and API,插件作者可以用来实现其代码。通常,这些类被打包为单独的JAR,这使得构建插件的依赖性最小。
您可以探索一些很好的插件架构示例:
JDBC公开了java.sql.Connection
并关联了类,以便数据库项目可以实现Java驱动程序。
SLF4J作为插件处理新的记录器框架绑定。 slf4-api
and slf4j-ext
dependencies用于实现插件。