5

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

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

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

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

提前非常感谢!

4

2 回答 2

2

您可能首先查看 OSGI 和他的实现(Eclipse 的 Equinox 和 Apache Felix),但如果您向我们提供更多关于您正在尝试做什么的信息,它会更容易。

于 2011-08-16T09:56:23.510 回答
1

插件解决了什么问题?

框架的设计者通常具有丰富的领域知识,可以为他们的设计选择提供信息。框架是在尝试解决某个问题两到三次之后出现的;早期的实现提供了有关如何将重要的内容抽象到框架中的线索。

Eclipse 解决了可扩展 IDE 的问题(在我看来很糟糕)。EJB 是在容器中运行的事务性分布式组件。

你没有说明你想解决什么样的问题。在你这样做之前,你的想法不会走得太远。

于 2011-08-16T09:47:58.123 回答