我想将Java桌面应用程序迁移到web,在前端使用React,并将所有内容都放在Microsoft云上,但我只是在这些主题上迈出了第一步。
在web建议中很容易找到构建一个标准的Java+React web应用程序(通常由Spring驱动),并通过一些HTTP来响应GUI调用后端。如果我的应用程序是一个3层应用程序(具有MVC /业务逻辑/数据存储的表示层),那么我是否正确地理解了上面所述的本质上意味着第一层将被完全重写的React应用程序完全取代,而其他两层将保留在Java中,并且只需稍作更改(添加HTTP )就会成为后端?
如果是这样的话,我看到了一些缺点:
我的观察正确吗?如果是这样的话,可以将我的桌面应用分成两部分:客户机(当前表示层)和服务器(业务和数据层),在客户端中,在我当前的MVC中,视图部分将被重写为JavaScript,而模型和控制器将保留在Java?中。
经过一些搜索后,我只看到以下几种可能性:
但是,我不想再添加一个需要学习和依赖的框架,尤其是一个似乎没有非常积极地开发和支持的框架。使用播音器也有其局限性,最好避免。
如果合理的话,我可以考虑选择其他流行的框架,如角或Vue过激反应。
发布于 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,如公司的教程所示。
发布于 2020-07-28 00:00:19
实际上,你在规划这些变化方面做得很好。首先,我认为您需要将表示逻辑与业务逻辑分开,作为MVC中的最佳实践,业务层不能调用表示层或完全依赖它,这样您就可以随意地更改表示层。
更多阅读:MVC Martin Fawler
我认为在分离它们时不会出现重复,因为您将遵循单一责任原则&消除层间的耦合。
因此,无论您选择GWT(不推荐)还是选择前端框架,这种分离都是强制性的。
也可以读到前端的MVVM
https://stackoverflow.com/questions/63124781
复制相似问题