如何使用Spring框架将Java控制台应用程序转换为全堆栈web应用程序?

如何使用Spring框架将Java控制台应用程序转换为全堆栈web应用程序?,java,spring,spring-boot,spring-mvc,system-design,Java,Spring,Spring Boot,Spring Mvc,System Design,因此,我想转换的项目位于 这个程序打算建立一个基于用户输入文件(xlsm)的搜索引擎。它首先从XLSM(excel)文件中提取内容并将其存储到数据库中。在建立数据库的同时,该程序还将计算一些特殊数字,如td idf,稍后将用于结果排名 目前使用的技术: 格拉德尔 爪哇13 蒙哥达 我想做什么? 将此控制台应用程序转换为使用Spring框架的全堆栈web应用程序。这意味着我想添加一个GUI 在这个转换过程中,我试图尽可能多地保留原始代码。对我来说,可以修改它们以适应MVC设计 总之,我想让我

因此,我想转换的项目位于

这个程序打算建立一个基于用户输入文件(xlsm)的搜索引擎。它首先从XLSM(excel)文件中提取内容并将其存储到数据库中。在建立数据库的同时,该程序还将计算一些特殊数字,如td idf,稍后将用于结果排名

目前使用的技术:
  • 格拉德尔
  • 爪哇13
  • 蒙哥达
我想做什么?
  • 将此控制台应用程序转换为使用Spring框架的全堆栈web应用程序。这意味着我想添加一个GUI
  • 在这个转换过程中,我试图尽可能多地保留原始代码。对我来说,可以修改它们以适应MVC设计
  • 总之,我想让我当前的应用程序在Spring框架上运行。只有控制台输出才可以
我的问题是什么?
  • 尽管我对Spring框架做了很多研究(特别是Spring引导)。但我仍在为实现该框架首先应该做什么而挣扎我想要一些关于如何开始的建议(或者我应该对我原来的项目做哪些更改)。我从互联网上学到的就是为build.gradle添加各种依赖项。但我仍然不知道下一步该怎么办我应该从头开始新的Web应用程序还是尝试转换当前的应用程序
非常感谢。
  • 我尽了最大的努力来填写细节。然而,这篇文章在某些方面可能仍然含糊不清,需要澄清。请随时让我知道,我非常愿意这样做:)

您似乎想要创建一个Web应用程序

最简单的入门方法是使用SpringBoot,它是Spring的“固执己见”版本,这意味着它使用智能默认值。您应该首先使用初始值设定项生成项目:。不断地生成和测试,直到你得到你想要的

最简单的方法是构建一个可执行的JAR,它将包含您的web服务器,并且可以在您拥有Java的任何地方运行。这是上面初始化器站点上的默认设置。我的建议是:在你知道你在做什么之前,接受SpringBoot的默认设置

图形用户界面: 最简单的方法是使用Thymeleaf模板来显示HTML

控制器: 了解如何编写基本控制器以返回Thymeleaf模板。最简单的开始方式是向控制器发送标准HTML

文件 Spring的一大优点是有足够的文档。 见:
并且:

我建议您从Spring初始化器开始,引导一个完全工作的Spring引导应用程序。或者,您可以使用JHipster(),它将为您创建一个Spring Boot应用程序和一个您可能更喜欢的前端

创建基础应用程序

选择需要此类MongoDB的依赖项:

构建基本组件

因此,SpringBoot应用程序中的基本流程是控制器->服务层->存储库

控制器将允许您创建带有
@RestController
注释的REST端点:

然后将您的业务逻辑从util包放入带有
@service
注释的服务类中。

您将使用
@Autowired
注释将服务层自动连接到控制器中

然后为数据库操作创建Spring存储库:

然后
@Autowire
将存储库导入服务层

总之,整个流程是前端(Angular、ReactJS等)对Spring应用程序进行HTTP调用,该调用由调用服务层的控制器处理,该服务层调用存储库来执行数据库操作

构建前端

你可以用Angular。许多前端开发人员更喜欢React,但对于新用户来说,Angular是一个更全面的框架

安装npm()

然后执行以下操作以启动并运行一个功能齐全的Angular应用程序:

npm install -g @angular/cli
ng new my-dream-app
cd my-dream-app
ng serve
然后,您可以使用Angular
HttpClient
调用Spring引导服务:

此repo已有几年历史,但它包含一个完整的堆栈Angular/Spring启动应用程序,您可以查看该应用程序以供参考:

您也可以使用Thymeleaf(),但大多数现代的全堆栈web应用程序都使用单独的前端应用程序,如Angular、React()、Vue.js()等

JHipster

Jhipster将完成所有这些,并为您连接一个完全工作的前端

课程

我也有关于在LinkedIn learning上构建全栈应用程序的完整课程,但完全公开,这不是一项免费服务,但有30天的试用期


我建议与KevinB相同,使用SpringBoot/Thymeleaf实现简单的MVC风格应用程序,以尽量减少使用过多的技术堆栈

但是,在开始行动之前,请记住,将项目/应用程序迁移到新框架或体系结构中首先需要分解组件(源和目标,然后映射它们)

github项目使用MONGODB,您不需要重新设置它

基于功能,您可以通过两种方式进行迁移,即一次构建一个功能的所有后端和前端


或者先开发模拟rest端点,然后在spring boot中调用服务端点的UI。

这是一个好问题,但对于StackOverflow来说不是一个好问题。它内容广泛,基于观点,更适合任何在线教程。