我有一个设计问题:我在服务器中使用DB + Hibernate + SpringBoot作为后端,并在台式机上使用Swing客户端。
我正在为一个新项目考虑以下架构:
后端(可能在单独的服务器中):
前端:
我进行了一些搜索,但仍然有一些疑问,觉得我缺少一些东西。我最初考虑使用React作为前端。但这对我来说将花费太长时间,并且我已经优化了很多Swing组件(并且我的应用程序倾向于使用很多带有“适当”编辑的网格)
我搜索了Spring + Swing,但是发现的是关于在同一个JVM上运行所有内容。我认为分离它们可以使我(以后)使用相同的后端构建Mobile或Web前端。
总结一下:
在SQL db之上使用spring boot + hibernate创建后端服务
创建使用这些服务的Swing前端
(后期)移动应用使用这些相同的服务
问题:
这是一个好方法吗?我看错了吗
如何在后端和前端之间“共享” POJO? (考虑将模型放在单独的库中);我不是说如何运输它们,而是要在两个项目中重复使用它们。
答案 0 :(得分:2)
这是可能的。
同步客户端执行HTTP请求,公开了一个简单的, 底层HTTP客户端库(例如)上的模板方法API JDK HttpURLConnection,Apache HttpComponents等。
回答两个问题:
如果您还没有的话,我建议您开始使用Maven作为构建工具。
祝你好运。
答案 1 :(得分:1)
您的请求是完全有效的,因为您是Swing开发人员,并且您的方法绝对正确。
因此,让我们大致了解一下:您正在构建后端/前端产品/软件。
后端
您的后端将是将在服务器上运行的Spring应用程序,例如http://localhost:8080,用于向客户端提供请求。
您可能想在http://localhost:8080/api/上创建一个@RestController,以便将功能公开给您的Swing客户端。
摇摆客户
您的客户端将是在桌面上运行的Swing应用程序。
要将客户端连接到Spring应用程序,您现在需要在Swing应用程序中实现一项服务,该服务将调用Spring Web服务器并从中获取资源。
要实现此目标,可能存在以下选择:
为什么不使用普通Java?使用此tutorial来调用您的Spring服务。
Http组件很常见。
启动您的应用程序! Spring API包括RestTemplate,您可以在Swing应用程序中使用该API来调用Spring后端并为桌面应用程序获取资源。
如您所见,这与React中的网站完全一样:
因此,请放心,您的方法是正确的。您会发现人们选择了一种过时的技术,而对您感到愤怒,但实际上,谁在乎?
(我想补充一点,您比现在面对着将Javafx库与核心Java分离的JavaFX家伙要聪明得多)
一如既往...编码愉快!