当前位置: 首页 > 网络应用技术

Spring Boot + Redis解决了重复提交的问题。阅读后不要说!

时间:2023-03-07 22:39:40 网络应用技术

  在实际开发项目中,接触曝光通常面临许多请求的接口。让我们解释权力和其他概念:任何多个执行的任何效果与一个执行的影响相同。根据这一含义,最终含义是对数据库的影响只能是一个时间 - 无法重复。处理。如何确保其权力和其他性质通常具有以下手段:

  1.建立数据库的唯一索引可以确保最终只有一个数据插入数据库。

  2.令牌机制,在每个接口请求之前获取令牌,然后在请求下一次请求的主体中添加此令牌,然后验证背景。如果删除了验证,将再次对下一个请求进行判断。

  3.悲观或乐观的锁,悲观的锁可以确保每次其他SQL不能成为更新数据(当数据库引擎是InnoDB时,选择的条件必须是防止完整表锁定表的唯一索引)

  4.查询后首先检查。首先,存在数据库的数据。如果已请求证明,则直接拒绝请求。如果没有存在,它将被证明是您第一次进入并直接放任它。

  REDIS的原理图实现了自动功率:

  1.首先是构建Redis服务器。

  2.从Springboot或Spring封装的Jedis引入Redis状态。稍后使用的主要API是其集合方法,并存在方法。在这里,我们使用Springboot包装的重新介绍。

  推荐春季靴基本教程和实际战斗示例:https://github.com/javastacks/spring-boot-practice

  自定义此注释的主要目的是将其添加到需要实现的方法中。任何注释的方法都将实现自动功率。在背景中,如果对该注释进行了反射,则将处理此方法以实现自动功率。使用元素注释ElementType.Method指示它只能放在方法上。EtentionPolicy.runtime表示它正在运行。

  令牌服务接口:我们创建一个新界面并创建令牌服务。其中有两种主要方法,一种用于创建令牌,另一个用于验证令牌。代币的主要创建产生字符串。如果您检查令牌,它将主要传达请求对象。为什么要传递请求对象?主要角色是将令牌在标题中获取,然后测试它以通过投掷例外来获取特定的错误消息以返回前端。

  令牌的服务实现类别:令牌引用REDIS服务,创建令牌使用随机算法工具类来生成随机的UUID字符串,然后将其重新放在业务上,如果您成功地将其放置在业务上,最终返回到该令牌值。检查方法是从标题中获取令牌(如果标题不可用,请从参数获取),如果不存在,请直接抛出异常。该异常信息可以由Interpector捕获,然后返回到该异常。前端。

  Web配置类实现WebMvcconFigurerAdapter。主要功能是将autodemodemtententceptor添加到配置类中,以便我们可以对拦截器生效。请注意使用@configuration注释,以便该将容器添加到上下文中了。

  拦截处理器:主要功能是拦截扫描以自动化注释方法,然后调用TokenService的CheckToken()方法以检查令牌是否正确。

  首先,我们需要通过/get/令牌路径通过getToken()方法获得特定令牌,然后我们调用TestIdempotence方法。此方法注释 @autoidempotent.当处理方法上有注释时,将调用TokenService中的CheckToken()方法。如果被捕获,则异常将被从呼叫者中抛出。让我们模拟请求:

  使用Postman请求,首先访问GET/令牌路径以获取特定令牌:

  使用对令牌的采集,然后将其放在标题中。您可以看到第一个请求成功,然后我们第二次请求:

  第二个请求返回重复操作,表明重复的验证通过,然后反复请求我们仅使其首次成功,而第二次是失败:

  本文介绍了Springboot和Springboot和Interpectors,Redis的使用,重新用于优雅的实现接口电源等。这对于诸如Power之类的功率非常重要,因为无数客户可以调用接口。如何确保它不会影响背景下的背景,以确保确保一次仅影响数据非常重要。它可以防止肮脏的数据或障碍数据,也可以减少并发量。这是一件非常有益的事情。传统的方法是每次判断数据。这种方法不是智能和自动化的,这更麻烦。今天的自动处理也可以提高程序的可扩展性。

  作者|

  资料来源:www.jianshua/p/c806003a8530