表單重復提交問題一般采取前端防重復提交和后端防重復提交方案,不過應該要兩種方式都結合在一起才行,這里來說說使用AOP進行后端防重提交。
一,定義防重提交注解。
我在里面定義了一個鎖住接口時間的方法,默認值為5,這里為什么要定義這么個方法呢,因為很多接口的處理時間不一樣,所以這樣靈活一點。
二,定義一個切面
我的方案是采用Redis來緩存提交接口的唯一標識,然后設置過期時間,唯一標識我才用接口的URL和用戶的token組合在一起就能達到唯一,用戶每發起第一次添加請求,會經過界面,在切面獲取信息后組裝起來存入Redis,當用戶后續發起請求時,首先判斷Redis中是否緩存了這個key,如果緩存了,則證明已經提交,於是反饋給前端,如果不存在,證明沒有提交,則存入Redis。
三,方法上加上注解
四,這就OK啦,不做過多的描述了,如果想學習AOP相關的知識,請自行學習。