如何将大量json数据发送到spring控制器。说,我有大约100k或1000k记录的大型json数据,需要在spring或springboot中将其发送到我的rest控制器,那么什么是解决问题的最佳/最有效方法?
我知道可以使用请求主体发送数据,但是我认为在REST api的请求主体中发送如此大量的数据效率不高。我可能在这里错了,如果我愿意,请纠正我。
并且数据需要尽快存储在数据库中。因此,我需要一种快速可靠的方法来解决这个问题。
答案 0 :(得分:0)
您的问题有两个部分。
1.如何接收如此庞大的数据量:如果要接收大量的数据,通常最好将其(从响应的输入流中)本地保存为文件并异步处理该数据。确保设置了适当的较高的读取超时,否则数据流可能会中断)。
2.如何处理如此大的文件:对于大文件,内存占用量需要最小。对于XML,SaxParsers是黄金标准。我发现此库与sax解析非常相似,但对于Json
http://rapidjson.org/md_doc_sax.html
答案 1 :(得分:0)
您可以使用反应性方法并流式传输数据。
在Spring中,使用MediaType.APPLICATION_STREAM_JSON_VALUE
生产者和Flux作为返回类型。
在客户端,订阅流并处理数据,或者可以使用Spring Batch将数据保存到数据库。