Spring: How to import data via CSV

In this article, I want to show you how you can import data via a CSV file in a cloud based application.

Spring controller

In order to upload the CSV file, we will use an HTTP POST request with mime type as multipart/form-data.

This request will be processed by my spring rest controller.

I will get the file via the request parameter with type : MultipartFile.

If the file content is not empty, I can extract the bytes and encode them as Base64 encoding using java 8 utility.

In order to do the work outside of a user-facing request, I use the Google Cloud Platform (GCP) task queues mechanism.

I can pass the encoded content as a task parameter. In parallel to the user facing request, a servlet will do the job with the specified parameter.


Servlet Consumer

The servlet is pretty straightforward :

  1. It extracts the encoded content
  2. It decode the encoded content
  3. It loads object list from the CSV content (jackson csv)
  4. It calls a service with the list of objects 

CSV Utility

In the servlet, I've called a utility method for reading the CSV content into an array of Objects.
I use for this purpose the Jackson library.


Happy learning... 


Comments

Popular posts from this blog

Spring JPA : Using Specification with Projection

Chip input using Reactive Form