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

cn1*_*n1h 5 java plugins spring system-design

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

我认为这种系统的主要问题是如何在运行时加载新插件。我不想在安装新插件时重新编译整个项目。就像Eclipse一样,全新安装插件后,用户只需重启即可。所以我的第一个想法是使用 java 反射在运行时加载类。可能有一些插件配置文件,系统读取它们并通过反射加载插件类。也许我也可以使用 spring 框架,因为它的控制反转正好符合我的要求。

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

反正我是系统设计的菜鸟。所以我发布了这个话题,想听听你的意见。顺便提一句。有什么关于系统设计的好书要推荐吗?

非常感谢!

Dim*_*tri 2

您可以首先查看 OSGI 及其实现(Equinox for Eclipse 和 Apache Felix),但如果您向我们提供有关您正在尝试执行的操作的更多信息,则会更容易。