当前位置: 首页 > news >正文

模拟防止重复提交

 gitee地址(需要自取)AopProxy重复提交: 防止重复提交 (gitee.com)

@RestController
public class SubmissionController {@Autowiredprivate SubmissionService submissionService;private static Jedis jedis = new Jedis("localhost",6379);private String lock = "lock";private String lockValue = "locked";private int gqsj = 5;private String ok = "OK";@PostMapping("/submit")public void handleSubmitForm(@RequestParam String name, @RequestParam int age) {SubmissionService submissionServiceProxy = (SubmissionService) Proxy.newProxyInstance(submissionService.getClass().getClassLoader(), new Class[]{SubmissionService.class}, (proxy, method, args) -> {SetParams params = new SetParams();params.nx().ex(gqsj);String res = jedis.set(lock, lockValue,params);if (ok.equals(res)){Object invoke = method.invoke(submissionService,name,age);System.out.println("提交成功");return invoke;}else {System.out.println("不允许重复提交");return null;}});submissionServiceProxy.insert(name, age);//      存疑?第一天晚上return null后汇报一个空指针错误,奇怪的是第二天不报错了
//      希望懂得大佬给小弟支个招//        try{
//            submissionServiceProxy.insert(name, age);
//        }catch (NullPointerException e){
//            System.out.println("禁止重复提交");
//        }}
}

思路就是使用代理来执行方法,使用aop的思想对其进行切片,在执行方法前加一个分布式锁,这里分布式锁采用的是redis.nx,并加上一个过期时间防止死锁。整体只做了一个简单模拟,写的比较简单,有错误或不足的地方,还请指正,共同进步。

相关文章:

模拟防止重复提交

gitee地址(需要自取)AopProxy重复提交: 防止重复提交 (gitee.com) RestController public class SubmissionController {Autowiredprivate SubmissionService submissionService;private static Jedis jedis new Jedis("localhost",6379);pr…...

C++:strcut与class的区别

在C中,struct和class在语法上非常相似,但它们之间确实存在一些关键的差异,这些差异主要体现在成员的默认访问权限和继承的默认方式上。然而,从更广泛的角度来看,它们都可以用来定义自定义数据类型,包含数据…...

科研绘图系列:R语言两组数据散点分布图(scatter plot)

介绍 展示两组数据的散点分布图是一种图形化表示方法,用于显示两个变量之间的关系。在散点图中,每个点代表一个数据点,其x坐标对应于第一组数据的值,y坐标对应于第二组数据的值。以下是散点图可以展示的一些结果: 线性关系:如果两组数据之间存在线性关系,散点图将显示出…...

【EasyExcel】根据单元格内容自动调整列宽

1.自定义Excel列宽样式策略类 import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.e…...

半月内笔者暂不写时评文

今晨,笔者在刚恢复的《新浪微博》发布消息表态如下:“要开会了!今起,半月内笔者暂不写敏感时评文,不让自媒体网管感到压力,也是张驰有度、识时务者为俊杰之正常选择。野钓去也。” 截图:来源笔者…...

Python面试题:如何在 Python 中解析 XML 文件?

在 Python 中解析 XML 文件可以使用内置的 xml.etree.ElementTree 模块。以下是一个示例,展示了如何使用这个模块解析 XML 文件: 读取 XML 文件: import xml.etree.ElementTree as ET# 读取 XML 文件 tree ET.parse(example.xml) root tr…...

3033.修改矩阵

1.题目描述 给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix ,新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等,接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。 返回矩阵 answer 。 示例 1: 输入&am…...

解决MCM功率电源模块EMC的关键

对MCM功率电源而言,由于其工作在几百kHz的高频开关状态,故易成为干扰源。电磁兼容性EMC(Electro Magnetic Compatibility),是指设备或系统在其电磁环境中符合要求运行并不对其环境中的任何设备产生无法忍受的电磁干扰的…...

在conda的环境中安装Jupyter及其他软件包

Pytorch版本、安装和检验 大多数软件包都是随Anaconda安装的,也可以根据需要手动安装一些其他软件包。 目录 创建虚拟环境 进入虚拟环境 安装Jupyter notebook 安装matplotlib 安装 pandas 创建虚拟环境 基于conda包的环境创建、激活、管理与删除http://t.cs…...

spark中的floor函数

在Spark中,floor函数是一种数学函数,用于返回不大于给定数值的最大整数。具体作用如下: 1. 数值操作: floor函数会将每个元素向下取整到最接近的整数。例如,对于浮点数或双精度数值,它会返回不大于该数值的…...

最简单的Docker离线安装教程

最简单的Docker离线安装教程 方式一 RPM 包方式1. 在线下载 RPM 包2. 将 RPM 包拷贝到安装机器3. 安装4. 启动 方式二 二进制安装方式(推荐)1. 下载包2. 将包进行解压授权3. 注册 systemd4. 自启和启动 一直以来在线安装 docker 到服务器上是非常方便的&…...

如何在 Python 中创建一个类似于 MS 计算器的 GUI 计算器

问题背景 假设我们需要创建一个类似于微软计算器的 GUI 计算器。这个计算器应该具有以下功能: 能够显示第一个输入的数字。当按下运算符时,输入框仍显示第一个数字。当按下第二个数字时,第一个数字被替换。 解决方案 为了解决这个问题&am…...

警惕:与ChatGPT共享业务数据可能十分危险

您已经在使用ChatGPT了吗?或者您正在考虑使用它来简化操作或改善客户服务?虽然ChatGPT提供了许多好处,但重要的是,您要意识到与ChatGPT这样的人工智能工具共享敏感业务数据相关的安全风险。下面,我们概述了一些关键问题…...

基于MacOS系统Sonoma 14.5的SSH服务禁止密码登录

基于系统Sonoma 14.5,不同系统有所差异。 修改sshd_config文件 sudo vim /etc/ssh/sshd_config找到以下两行取消注释,修改值为 no PasswordAuthentication no KbdInteractiveAuthentication no重启sshd服务 # 关闭服务 sudo launchctl unload -w /System…...

深入理解MySQL中的EXPLAIN及type列

在MySQL中,EXPLAIN是一个强大的工具,它可以帮助我们理解SQL查询的执行计划。通过使用EXPLAIN,我们可以获取到查询的详细信息,包括如何执行查询,以及查询的各个部分如何连接在一起。在本篇博客中,我们将重点…...

LoRaWAN网络协议Class A/Class B/Class C三种工作模式说明

LoRaWAN是一种专为广域物联网设计的低功耗广域网络协议。它特别适用于物联网(IoT)设备,可以在低数据速率下进行长距离通信。LoRaWAN 网络由多个组成部分构成,其中包括节点(终端设备)、网关和网络服务器。Lo…...

ITSS服务经理:WAVE SUMMIT深度学习开发者大会2024在北京召开

在6月28日,由深度学习技术及应用国家工程研究中心主导的WAVE SUMMIT深度学习开发者大会2024于北京隆重举行。 此次盛会由百度飞桨和文心大模型联袂承办。 在大会上,百度震撼发布文心大模型4.0 Turbo版本,并宣布其API接口将向广大开发者开放…...

Keysight 是德 DSAX93204A 高性能示波器

Keysight 是德 DSAX93204A 高性能示波器 DSAX93204A Infiniium 高性能示波器: 33 GHz 高带宽实时示波器 zui佳的 33 GHz 真正模拟带宽80 GSa/s 采样率,2 通道;40 GSa/s 采样率,4 通道zui深的存储深度――高达 2 Gpts 存储器&am…...

oracle逻辑层级详解(表空间、段、区、数据块)

文章目录 逻辑结构的层次如下所述:逻辑结构包括表空间、段、区和数据块。表空间:段:区:数据块: 逻辑结构的层次如下所述: oracle数据库至少包含一个表空间。 表空间包含一个或多个段。(segmen…...

华为OD机试(C卷,200分)- 字符串拼接、田忌赛马

(C卷,200分)- 字符串拼接 题目描述 给定 M&#xff08;0 < M ≤ 30&#xff09;个字符&#xff08;a-z&#xff09;&#xff0c;从中取出任意字符&#xff08;每个字符只能用一次&#xff09;拼接成长度为 N&#xff08;0 < N ≤ 5&#xff09;的字符串&#xff0c; 要求…...

BGE Reranker-v2-m3开源可部署:提供完整Dockerfile与build脚本,便于CI/CD集成

BGE Reranker-v2-m3开源可部署&#xff1a;提供完整Dockerfile与build脚本&#xff0c;便于CI/CD集成 你是不是经常遇到这样的问题&#xff1f;从搜索引擎或者自己的数据库里搜出一堆文档&#xff0c;但排在前面的往往不是最相关的。手动一篇篇看过去&#xff0c;效率低不说&a…...

经典软件优化:魔兽争霸III的现代设备适配解决方案

经典软件优化&#xff1a;魔兽争霸III的现代设备适配解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 当经典游戏遇上现代硬件&#xff0c;往往…...

Pixel Dream Workshop生成内容的数据存储与数据库设计

Pixel Dream Workshop生成内容的数据存储与数据库设计 1. 引言&#xff1a;当AI绘画遇上数据管理 想象一下&#xff0c;你运营着一个拥有10万活跃用户的AI绘画平台。每天&#xff0c;用户们上传数十万条创意提示词&#xff0c;生成数百万张风格各异的数字艺术作品。这些数据不…...

seo优化网站效果好的标准是什么_如何自己进行网站seo优化

SEO优化网站效果好的标准是什么_如何自己进行网站SEO优化 在当今数字化时代&#xff0c;网站的SEO优化已经成为每个企业和个人网站成功的关键。SEO优化网站效果好的标准究竟是什么呢&#xff1f;更重要的是&#xff0c;如何自己进行网站SEO优化&#xff1f;本文将详细探讨这些…...

碧蓝航线自动化工具:解放双手的智能管理完整方案

碧蓝航线自动化工具&#xff1a;解放双手的智能管理完整方案 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 【玩家痛点】现…...

OpenClaw技能扩展实战:用百川2-13B-4bits自动生成技术博客草稿

OpenClaw技能扩展实战&#xff1a;用百川2-13B-4bits自动生成技术博客草稿 1. 为什么需要自动化技术写作 作为技术团队的文档负责人&#xff0c;我每周需要产出3-5篇技术博客。传统写作流程要经历选题会、资料收集、大纲确认、初稿撰写、格式调整等环节&#xff0c;平均每篇文…...

MATLAB算法移植与优化:借助LiuJuan20260223Zimage转换为Python代码

MATLAB算法移植与优化&#xff1a;借助LiuJuan20260223Zimage转换为Python代码 1. 引言 很多工程师和研究者都遇到过类似的困境&#xff1a;手头有一套用MATLAB写好的核心算法&#xff0c;运行稳定&#xff0c;逻辑清晰&#xff0c;但项目要求转向更开放、生态更丰富的Python…...

Elasticsearch 8证书转换全攻略:解决SkyWalking 9.7.0的SSL连接报错

Elasticsearch 8证书转换全攻略&#xff1a;解决SkyWalking 9.7.0的SSL连接报错 在企业级监控系统部署中&#xff0c;SkyWalking与Elasticsearch的集成常因证书格式问题遭遇阻碍。当Elasticsearch 8采用PEM格式的自签名证书&#xff0c;而SkyWalking 9.7.0仅支持PKCS12或JKS格式…...

从零部署Granite TimeSeries FlowState R1:Linux服务器环境保姆级配置指南

从零部署Granite TimeSeries FlowState R1&#xff1a;Linux服务器环境保姆级配置指南 最近在折腾时间序列预测项目&#xff0c;需要找一个既专业又能在生产环境稳定运行的模型。试了几个方案后&#xff0c;最终锁定了Granite TimeSeries FlowState R1。这名字听起来有点复杂&…...

安卓开发工程师技术指南与面试准备

引言 安卓开发工程师在现代移动应用生态中扮演着核心角色,负责设计、开发和维护高性能的Android客户端软件。随着智能手机的普及和移动互联网的快速发展,Android平台占据了全球移动操作系统市场的绝大部分份额。据StatCounter数据,Android在全球移动操作系统中的市场份额超…...