首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一个三层Java桌面应用程序迁移到web:如何使只有表示层的视图在反应中,而其余的在Java中呢?

将一个三层Java桌面应用程序迁移到web:如何使只有表示层的视图在反应中,而其余的在Java中呢?
EN

Stack Overflow用户
提问于 2020-07-27 22:55:37
回答 2查看 206关注 0票数 0

我想将Java桌面应用程序迁移到web,在前端使用React,并将所有内容都放在Microsoft云上,但我只是在这些主题上迈出了第一步。

在web建议中很容易找到构建一个标准的Java+React web应用程序(通常由Spring驱动),并通过一些HTTP来响应GUI调用后端。如果我的应用程序是一个3层应用程序(具有MVC /业务逻辑/数据存储的表示层),那么我是否正确地理解了上面所述的本质上意味着第一层将被完全重写的React应用程序完全取代,而其他两层将保留在Java中,并且只需稍作更改(添加HTTP )就会成为后端

如果是这样的话,我看到了一些缺点:

  • 在表示层中,我希望尽可能少做一些工作;只是用一些漂亮和现代的东西来替代丑陋的秋千视图,仅此而已。但是我发现自己不得不重写GUI逻辑、控制器等--这是用我不太熟悉的语言(即Java脚本)编写的。
  • 我有一些实用程序函数和由表示层和业务层使用的库(例如,包含在文件上操作的某些pojos或函数)。如果我将第一层完全移动以作出反应,这意味着我需要在JavaScript中复制这些工具,这将耗时且容易出错。

我的观察正确吗?如果是这样的话,可以将我的桌面应用分成两部分:客户机(当前表示层)和服务器(业务和数据层),在客户端中,在我当前的MVC中,视图部分将被重写为JavaScript,而模型和控制器将保留在Java?中。

经过一些搜索后,我只看到以下几种可能性:

  1. 创建前端不是使用纯React,而是使用GWT或Vaadin框架与部分React集成在一起。
  2. 使用转播器(JSweet?)将我的Java代码转换为JavaScript。

但是,我不想再添加一个需要学习和依赖的框架,尤其是一个似乎没有非常积极地开发和支持的框架。使用播音器也有其局限性,最好避免。

如果合理的话,我可以考虑选择其他流行的框架,如角或Vue过激反应。

EN

回答 2

Stack Overflow用户

发布于 2020-07-28 02:56:42

只有Java和Vaadin

使用https://vaadin.com/,您可以非常容易地重新创建现有的 秋千 views。小部件和布局管理器的概念非常相似。您可以使用与Swing代码类似的直接Java代码。或者,您可以使用他们的商业视觉编辑产品

Vaadin应用程序驻留在服务器上,包括用Java编写的UI和业务逻辑,以及在服务器上用JVM执行的业务逻辑。

Vaadin使用标准web技术自动生成Web客户端远程呈现表单所需的HTML/CSS/JavaScript。用户事件(鼠标单击、字段之间的选项卡等)将自动传输回服务器Java代码以响应运行Java代码。

根本不需要https://en.wikipedia.org/wiki/React_(web_framework),因为Vaadin透明地处理单页应用程序 DOM操作。你根本不需要写任何JavaScript。

Vaadin与春天雅加达CDI一起工作。或者您可以选择使用普通的雅加达Servlet

参见Vaadin公司页面,关于将Swing应用迁移到Vaadin的https://vaadin.com/application-migration/swing概述。

Vaadin使用标准的Jakarta技术部署在标准Java之上。因此,您当然可以部署到云端,如您所提到的Microsoft,如公司的教程所示。

票数 1
EN

Stack Overflow用户

发布于 2020-07-28 00:00:19

实际上,你在规划这些变化方面做得很好。首先,我认为您需要将表示逻辑与业务逻辑分开,作为MVC中的最佳实践,业务层不能调用表示层或完全依赖它,这样您就可以随意地更改表示层。

更多阅读:MVC Martin Fawler

我认为在分离它们时不会出现重复,因为您将遵循单一责任原则&消除层间的耦合。

因此,无论您选择GWT(不推荐)还是选择前端框架,这种分离都是强制性的。

也可以读到前端的MVVM

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63124781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档