Java可插入应用程序消费者如何加载接口?

时间:2019-01-19 10:04:57

标签: java plugins interface loading

我正在创建一个小型的爱好Java任务/待办事项应用程序。我希望能够为其编写插件,这些插件将存储在某个目录中,可能位于plugins旁边的myapplication.jar目录中。

我对如何加载这些插件有一些想法,我想编写一个插件创建者可以使用的接口,例如SomeActionInterface,当实现该接口时,允许插件向SomeAction添加功能。 / p>

我的问题是,SomeActionInterface到哪里去了,插件创建者将如何访问所述界面?

接口是进入用户应该在其类路径中加载的主myapplication.jar中,还是进入单独的myapplication-plugininterfaces.jar中?

1 个答案:

答案 0 :(得分:1)

通常,您会公开SPI and API,插件作者可以用来实现其代码。通常,这些类被打包为单独的JAR,这使得构建插件的依赖性最小。

您可以探索一些很好的插件架构示例: