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

时间:2011-08-16 09:42:15

标签: java spring plugins system-design

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

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

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

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

提前多多谢谢!

2 个答案:

答案 0 :(得分:1)

插件解决了什么问题?

框架的设计者通常具有深入的领域知识,可以通知他们的设计选择。经过两三次尝试解决问题后,框架就会出现;早期的实现提供了关于如何将重要内容抽象到框架中的线索。

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

您没有说明您想要解决的问题类型。在你做之前,你的想法不会走得太远。

答案 1 :(得分:1)

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