我正在尝试制作一个基于插件的应用程序,这意味着除了基本框架之外,还应该使用插件样式添加其他功能。
我认为这种系统的主要问题是如何在运行时加载新插件。安装新插件后,我不想重新编译整个项目。就像 Eclipse 一样,新安装插件后,用户只需要重新启动它。所以我的第一个想法是使用java反射在运行时加载类。可能有一些插件配置文件,系统读取它们并通过反射加载插件类。也许我也可以使用 spring 框架,因为它的控制反转正好符合我的要求。
我正在研究的另一个想法是使用 ejb 容器。当插件是 ejbs 时,我可以将它们打包到 jar 中并将它们部署在 ejb 容器中,然后我可以使用 jndi 访问它们。但它仅在插件是 ejbs 时才有效。
无论如何,我是系统设计的菜鸟。所以我发布了这个话题,想听听你的意见。顺便提一句。有没有什么关于系统设计的好书要推荐?
提前非常感谢!