最近項目中,做了一個支持上傳文件的后臺提交功能,開發(fā)過程中遇到了以下幾個問題,整理并給出具體的解決思路
1)表單重復(fù)提交
2)form表單異步提交
3)批量數(shù)據(jù)寫入,事務(wù)回滾
4)SpringBoot默認(rèn)接收文件流大小
問題1
1、利用JavaScript防止表單重復(fù)提交,通過添加js腳本,讓用戶無法進行多次有效點擊
2、表單提交之后,將提交按鈕設(shè)置為不可用,讓用戶沒有機會點擊第二次提交按鈕
3、利用Session防止表單重復(fù)提交,通過session創(chuàng)建token屬性,判斷用戶是否重復(fù)提交
4、在分布式環(huán)境中,多臺服務(wù)可能同時存在,由于路由的問題,通過session防止表單重復(fù)提交,不能徹底解決問題,此時可以通過關(guān)聯(lián)操作用戶信息和token,創(chuàng)建共享token屬性,放入到緩存服務(wù)中。
問題2
問題3
1、通過Spring聲明式事務(wù)管理機制
問題4
Spring Boot 默認(rèn)最大request size 為1MB(1048576 bytes)。
需要設(shè)置以下兩個參數(shù)
Spring Boot 1.3.x或者之前
multipart.maxFileSize=100Mb
multipart.maxRequestSize=1000Mb
Spring Boot 1.4.x或者之后
spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=1000Mb