是否可以在javaee应用程序中使用相同的界面,并在CLI和GUI中同时使用?

是否可以在javaee应用程序中使用相同的界面,并在CLI和GUI中同时使用?,java,api,user-interface,command-line-interface,Java,Api,User Interface,Command Line Interface,我们有一个没有任何gui的javaee应用程序。添加一些记录到数据库配置。表(实体)我们使用手动sql脚本,这是不安全和容易的。 我们已经决定为我们的应用程序开发gui和CLI来处理这个问题。 是否可以在javaee应用程序中使用接口,然后在Gui和CLI中使用? 从最终用户的角度来看,gui和cli中的服务和参数都是相同的。 像jboss admin web console和jboss cli之类的东西来部署工件。根据您的需要,有几种选项可供选择 最有效的选项是创建一系列快速命令作为命令行选项

我们有一个没有任何gui的javaee应用程序。添加一些记录到数据库配置。表(实体)我们使用手动sql脚本,这是不安全和容易的。 我们已经决定为我们的应用程序开发gui和CLI来处理这个问题。 是否可以在javaee应用程序中使用接口,然后在Gui和CLI中使用? 从最终用户的角度来看,gui和cli中的服务和参数都是相同的。
像jboss admin web console和jboss cli之类的东西来部署工件。

根据您的需要,有几种选项可供选择

最有效的选项是创建一系列快速命令作为命令行选项运行,这些命令可以在不加载GUI的情况下运行,如果没有给出命令,则加载GUI。这在短应用程序或接口客户端到服务器应用程序上尤其有效,在这些应用程序中,接口客户端程序将启动,将命令发送到服务器,然后关闭

这可以在许多平台上完成,而不仅仅是Java。我能想到的最值得注意的开源例子是基于WineTricks Shell脚本的程序和基于Mono的Kerbal Space程序mod management应用程序CKAN

这是运行实用程序或服务器远程命令客户端的一种行之有效的方法,通常效果良好

对于更高级的选项,您可以使用命令行选项启用命令流模式,该模式使控制台保持打开状态以侦听命令,或者选择特定的GUI面板

其他功能是允许使用XML描述符文件从CLI加载命令行为,或描述如何为用户构建各种控制面板

此外,您可以使用相同的方式从多个UI中进行选择,允许使用web界面以及本地UI

实际上,有很多方法可以让一个工具拥有大量前端


对于structural implementation,您可能希望使用后端/前端设置,其中CLI命令是后端,但可以在收到命令时加载已注册的GUI前端插件。这减少了依赖性,这总是好的。由于命令行总是在一定程度上开放的,而且非常小,因此默认情况下应该内置命令行。

任何事情都有可能。这取决于你如何设计它。例如,在您的情况下,我会将我的数据库交互逻辑放在一个服务中,然后让相同的服务代码从我的web层(通过REST或其他API)和我的CLI调用。谢谢。在web层和CLI中使用/调用的服务(如您所建议的,负责db交互)中是否有任何标准的API设计方法?