设计一个基于插件的java应用程序

我正在尝试创建一个基于插件的应用程序,这意味着除了基本框架之外,还应该使用插件样式添加其他功能.

我认为,这种系统的主要问题是如何在运行时加载新的插件.安装新插件时,我不想重新整理整个项目.就像Eclipse一样,在新安装插件之后,用户只需要重新启动它.
所以我的第一个想法是使用java反射在运行时加载类.可能有一些插件配置文件,系统读取它们并使用反射加载插件类.也许我也可以使用spring框架,因为它的Inversion of Control符合我的要求.

我正在调查的另一个想法是使用ejb容器.当插件是ejbs时,我可以将它们打包到jar中并将它们部署在ejb容器中,然后我可以使用jndi来访问它们.但它只在插件是ejbs时才有效.

无论如何,我是系统设计的新手.所以我发布这个主题,想听听你的意见.
顺便说一句.你有什么关于系统设计的好书吗?

非常感谢!

最佳答案 您可能首先看一下OSGI及其实现(Equinox for Eclipse和Apache Felix),但如果您向我们提供有关您尝试执行的操作的更多信息会更容易.

点赞