繁体   English   中英

创建基于模块/包的项目?

[英]Creating module / package based project?

我想用Java创建一个项目,将该项目作为自身其他部分的外壳,盒子或控制器(可能为其命名)。 我希望能够在程序安装后加载其他程序部分,例如插件或附加组件,或者如何调用它们。

例如,可以想到一个名为Calculator的程序,该程序的顶部具有MenuBar,从而可以加载几个JFrame(或JInternalFrame),这些JFrame提供不同的计算方式,例如ListSums,InvoiceSums,BreakEvenCalculator,...(等等)。

现在,我要创建的是一种遮罩,使我可以导入带有天气计算的新JInternalFrame。 从字面上添加几个菜单项和一组新的蒙版。 好吧,这种插件或插件应该从我提供的链接中下载。

我已经尝试过使用谷歌搜索某些方法来做到这一点,但是我不确定要搜索什么。

是否有任何网站提供有关如何创建这样的插件或附加组件的信息?

提前为每个乐于助人的灵魂欢呼!

由于您的问题不是很具体,所以不确定我是否理解正确,但是无论如何我都会尝试回答。

我猜想您想在运行时动态加载Java代码(无需重新启动/重新编译程序)。

因此,有一些不同的方法可以实现这一目标:

1.自己的“框架”

您将创建一个通用GUI,该GUI能够动态地动态生成GUI元素。 然后,您可以通过自己的DSL或XML在模块中定义模块。 然后根据您的定义生成GUI,您可以动态加载。 我曾经用它来自动生成一个GUI,用户可以在其中创建自己的动态报告,而用过一次的通用安装程序工具可以在一个案例中创建一个带有签出项目的新工作区,并在tomcat中构建和部署并运行一个webapp。

优点:

  • 易于入门
  • 您知道代码(因为您已经编写了代码)

缺点:

  • 很具体
  • 因为它仅支持您编程到框架中的内容,所以很耗时
  • 如果您不了解自己的工作/需求改变/ ...,您可以轻松开发错误代码。

2.使用一些执行引擎 (例如RhinoNashorn(Java 8)

您可以使用JS开发模块,也可以从某些模块生成GUI(如1.中所述)-在Swing GUI的情况下,甚至从JS创建输出(在WebApp的情况下,也可以这样做)因为它只是打印html)

优点:

  • 您可以执行引擎/模块语言支持的所有操作
  • 您比使用1更灵活。
  • 需要更少的时间

缺点:

  • 需要了解发动机的工作原理
  • 启动不如1.容易,因为您有更多的外部依赖项
  • 您受到引擎限制的限制(在js的情况下,例如沙箱,例如默认情况下不写入文件,不进行任何秋千集成/交互...)

3. OSGi / Spring DM服务器

您也可以使用自己的打包程序在Java中创建模块,并使用OSGi即时将其部署到您的应用程序中。

如果您希望将其用于Web应用程序,我将研究Spring dm Server: http : //static.springsource.com/projects/dm-server/1.0.x/programmer-guide/html/ch03s02.html

否则,OSGi应该更合适。

由于关于这两个主题的文档很多,因此在这里我不会做更多的介绍。

优点:

  • 您可以做所有事情,因为您的模块将只是java
  • 您使用Java完善的标准机制

缺点:

  • 需要了解框架的工作原理
  • 启动不如1.或2那样容易,因为您将必须了解所使用的技术
  • 更多的外部依赖

如果我的回答对您有所帮助,如果您接受我会很高兴,如果不能接受,请提供更详细的信息,说明您想要实现什么以及您的要求是什么。

问候,曼努埃尔

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM