2011-08-16 34 views
4

我试图做一个基于插件的应用程序,这意味着,除了基本框架,其他功能应添加插件风格。设计一个基于Java应用程序的插件

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

我正在调查的另一个想法是使用ejb容器。当插件是ejbs时,我可以将它们打包成jar并将它们部署到ejb容器中,然后我可以使用jndi来访问它们。但它只在插件是ejbs时才起作用。无论如何,我是一个系统设计的菜鸟。所以我张贴这个话题,并希望听到你的意见。 btw。有没有关于你想推荐的系统设计的好书?

非常感谢!

+0

“我想听听你的意见”不是一个好问题,试着做一个更具体的问题 – Cephalopod

+1

看看Class.forName() –

回答

1

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

1

插件解决什么问题?

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

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

你没有给出你想要解决什么样的问题。直到你这样做,你的想法不会变得很遥远。