Java如何防止接口重复提交( 三 )


(3)最后,需要将上述自定义的拦截器加入中系统全局配置中,如下所示:
@Componentpublic class CustomWebConfig implements WebMvcConfigurer{@Autowiredprivate RepeatSubmitInterceptor submitInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(submitInterceptor);}}运行项目,打开Postman,连续多番进行测试,如下几张图所示:

Java如何防止接口重复提交

文章插图
 

Java如何防止接口重复提交

文章插图
 

Java如何防止接口重复提交

文章插图
 
至此,我们已经采用实际的代码实战实现了“如何防止接口重复提交”的功能,值得一提的是,上述代码在实现过程中,其核心在于缓存组件的搭建;在“重复提交”这一业务场景中,它需要满足两个条件方可发挥作用:一个是可以用于缓存信息,即具有Key - Value的特性;另一个是可以对存储的数据设置过期时间;
在这里笔者采用的是google开发工具类中的CacheBuilder构建本地缓存组件的,感兴趣的小伙伴可以自行搜索相关资料;然而这种实现方式在集群多实例部署的情况下是有问题的,因为CacheBuilder只适用于单一架构体系,所以如果是多实例集群部署的情况,最好用redis 。
(1)文中涉及到的代码已经放在gitee上了,访问链接如下所示,别忘了给个star哦:https://gitee.com/steadyjack/SpringBootTechnologyA 。
(2)期间如何有任何问题都可以私信debug 。
(3)请继续关注“程序员实战基地”,您的关注和转发 就是 debug勤劳写技术文的动力!!!

【Java如何防止接口重复提交】


推荐阅读