java - 从哪儿开始?具有多个前端的 Java 应用程序

标签 java

我这里有一个多年前编写的应用程序,它由一个直接查询数据库服务器的重量级前端组成。该应用程序在大约 7 个专用工作站上运行。我还开发了一个基于 Web 的前端,它共享相同的功能集,以及一个基于 Web 的管理系统,用于管理和报告数据——它们都直接访问数据库。

该应用程序非常简单,我很好地理解它解决的问题。它可能需要更新,但我什至无法再访问使用 GUI 所需的工具。我最近开始接触 Java,看来重写这个应用程序将是一个很好的项目。

所以我的问题是:

应用程序将需要一个非 Web GUI,我想是在 Swing 中。出于非常特殊的原因,这是必要的。该应用程序还需要一个基于 Web 的 GUI,其功能与 Swing 前端完全相同,可能会部署为 JSR-168 portlet,以及一个基于 Web 的管理工具(也是 portlet)。在我之前的设计中,我最终得到了很多重复的代码,因为每个组件都有自己的代码库,而且我愚蠢地使用存储过程来帮助确保关键计算至少是一致的。

我应该从哪里开始?我很难理解这一切在 Java 世界中应该如何运作。我想我遇到的最困难的事情是如何创建一个应用程序,它可以同时具有 Swing(或其他)前端和基于 Web 的前端,并且重复尽可能少?

编辑:我从概念上知道这是如何工作的。我所询问的是与 Java 技术相关的具体建议。要考虑哪些框架等。

最佳答案

构建一个包含业务逻辑的核心。使用 JDepend 或类似的工具来确保它不会引用任何 swing 或任何 web/jsp/servlet。

构建两个 UI:对于 Web 版本,选择您选择的 Web 框架并从那里调用您的业务逻辑。

对于 Swing 框架,您有两个选择:通过 Web 服务访问业务逻辑(您可以使用 RMI 或其他方式,但我不会),即逻辑位于为 Web 应用程序提供服务的同一个 Web 服务器上(我可能更喜欢那)。另一种方法是使用 swing GUI 来交付 weblogic。使编码和调试更容易,但是现在您有多个访问数据库的点,这在您想要使用缓存时会引起头痛

无论如何,您应该只复制 gui 内容,一次在 html/css/javascript 中,一次在 swing 中。

恭喜该项目,它将教会您大量有关设计和软件架构的知识

关于java - 从哪儿开始?具有多个前端的 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/595416/

相关文章:

java - 找不到用于内省(introspection)工厂方法的类文件: java. util.concurrent.ThreadPoolExecutor.DiscardPolicy

java - 给定斐波那契递归函数创建内存算法

java - 为 ListView 设置背景图像

java - String.format() 与字符串连接性能

java - 从流中过滤可为空的值并更新可为空的属性

Java 根据值对 Hashmap 进行排序

java - 将 protobuf3 与一些依赖于 Java 中的 protobuf2 的库一起使用

java - 在java中使用DOM创建xml

java - 我正在尝试找到 jsdt 的 eclipse 的 jar 存储库

java - 如何计算点数组列表的质心