java项目防止用户重复登录 Java的项目经验要怎么积累呢?

Java的项目经验要怎么积累呢?

多看开源项目源代码,或者自己尝试做一些项目。比较有帮助,最后推荐一个项目集,可以试着做一下,一共10个项目,还有配套资料,源代码都可以获得!(答案转载自音乐字节)

哔哩哔哩搜索BV1f64y117vk

后台怎么防止因网络延迟,用户连续点击导致后台重复执行一条数据,这样的状况发生?

这是典型的防止重复提交的问题!在实际场景中,比如有重复扣费,重复购买!

如何设计才能防止重复提交?我们主要有以下操作:

①前端:点击提交按钮,点击后会变灰,一段时间内不允许重复提交!

优点:最便捷的提高并发的方法!

缺点:页面刷新时js失败,前端容易被篡改!

②后端:

1.锁定:锁定提交的id,同一id在一定时间范围内只能通过一次!

如果是分布式服务,需要借助redis添加分布式锁,否则多个服务中的锁不能互斥!

2.幂等性:保证接口是幂等的,先查询,记录不存在就添加,存在就返回查询结果!

缺点:高并发环境不能保证幂等性!

③数据库:如果是新增加的,可以增加唯一字段。保存时,如果唯一字段重复,将引发异常。使用insertignore语句进行判断!

如果修改了,可以使用乐观锁sql确保版本version符合要求后再执行sql!以下示例是乐观锁定机制:

更新table_testsetnamename1,versionversion1其中idid1和version2

我在实际工作中使用以上方法。如果有更合适有效的方法,请补充。。笔者一直在持续分享JAVA开发技术,其中不乏好文章,有需要的朋友可以关注一下。。

方法缺点添加sql