简介:
spring + redis 防止表单重复提交。
实施:
1.根据http://see-you-again.iteye.com/admin/blogs/2323435完成spring和reis的整合
2.核心代码如下:
/** * 为了实现防止表单重复提交功能,我们需要在数据库中存入一个唯一标识,当表单重复提交时 * 如果发现数据已经存在,那么返回插入失败 * * 同时我们需要设置这个唯一标识的时效性,然而无论数据是否已经存在都会修改时效值,那么 * 解决办法便是设置uuid,只有插入值或者值相等时哦我们才允许修改 * @param singleid 唯一标识 * @return 操作结果 */ public boolean add(final String singleid) { boolean result = redisTemplate.execute(new RedisCallback<Boolean>() { public Boolean doInRedis(RedisConnection connection) throws DataAccessException { RedisSerializer<String> serializer = redisTemplate.getStringSerializer(); String uuid = UUID.randomUUID().toString().replaceAll("-",""); byte[] key = serializer.serialize(singleid); byte[] value = serializer.serialize(uuid); boolean res = connection.setNX(key, value); if(res || connection.get(key).equals(value)) connection.expire(key,122) ; return res ; } }); return result; }