使用Spring Boot和Spring Batch读取.csv文件并将其存储在数据库中

时间:2019-12-19 19:25:41

标签: java spring spring-boot spring-batch

我正在开发一个简单的应用程序,它将允许用户通过reactjs客户端上传.csv文件并将其存储在mysql数据库中。我发现了一些 有关如何在线执行类似操作的教程(https://spring.io/guides/gs/batch-processing/),但它们都使用本地保存的.csv文件 在项目目录中。我有使用Spring Boot设计RESTful接口的经验,看起来Spring Batch很容易 弄清楚,但我不知道该怎么办:

  1. 从现有的Spring Boot应用程序中调用Spring Batch应用程序
  2. 将.csv文件从客户端驱动器传递到Spring Batch应用程序

我是否必须将.csv文件从客户端驱动器上载到运行Spring Batch(或Spring Boot)应用程序的服务器上? 如果是这样,是否有托管服务可以让我托管单个.csv文件和Spring应用程序?

2 个答案:

答案 0 :(得分:1)

您不需要两个单独的应用程序-您可以将Spring Batch作业/步骤嵌入到Spring Boot应用程序中。

您将需要创建一个接收多部分文件上传的端点,以将CSV文件存储在某处。否则,您的批处理步骤将无法处理。您可以将该文件存储在应用程序服务器的硬盘驱动器上,或存储在托管存储解决方案(如Amazon S3)中。

答案 1 :(得分:0)

当然,csv是非常简单的格式,但是任何东西都有方便的库,它们可以“从盒子里”完成所有工作。看一下OpenCSV……它可以从流中读取csv,并且可以使用CSVReader对其进行自定义,例如,从db中逐行读取或获取带有数据的大块。我认为这是处理CSV格式最强大的库。