给我一个基于java的,防止数据短时间内重复提交的代码
时间: 2024-05-03 20:20:06 浏览: 7
以下是一个基于Java的防止数据短时间内重复提交的代码示例:
```
import java.util.HashMap;
public class AntiDuplication {
private static HashMap<String, Long> map = new HashMap<>();
private static final long TIMEOUT = 5000; // 5秒内防止重复提交
public static synchronized boolean check(String key) {
long lastTime = map.containsKey(key) ? map.get(key) : 0;
long currentTime = System.currentTimeMillis();
if (currentTime - lastTime < TIMEOUT) {
return false; // 数据重复提交
}
map.put(key, currentTime);
return true; // 数据未被重复提交
}
}
```
使用方法如下:
```java
if (AntiDuplication.check("inputData")) {
// 执行提交数据操作
} else {
// 数据已经被重复提交过了,不再执行提交数据操作
}
```
这个代码基于HashMap记录了每一个数据提交的时间,如果两次提交之间的时间间隔小于5秒,则判定为数据重复提交。由于使用了synchronized关键字确保了线程安全,多线程情况下也可以正确判断。