接口幂等解决方案——防重Token令牌

前言针对客户端连续点击或者调用方的超时重试等情况,例如提交订单,此种操作就可以用 Token 的机制实现防止重复提交。简单的说就是调用方在调用接口的时候先向后端请求一个全局 ID(Token),请求的时候携带这个全局 ID 一起请求(Token 最好将其放到 Headers 中),后端需要对这个 T
Java 2023年03月22日 1,430次浏览

接口幂等解决方案——单机版(防止数据重复提交)

前言在业务开发中,接口的幂等性是一个十分重要的设计。接口幂等是指对于同一个接口的多次调用,其结果应该和单次调用的结果一致。 也就是说,无论调用接口的次数是一次还是多次,最终的结果都应该是一样的。本文我们主要介绍单机服务的接口幂等解决方案,解决的问题为防止数据重复提交。实现模拟用户场景例如我们有一个如
Java 2023年03月22日 775次浏览

网站禁止IP访问

问题偶然发现本站可以通过 IP 进行访问,补一下网站漏洞。解决找到网站的 Nginx 配置文件,在 Nginx 中加一个如下 server 块,然后重新加载 Nginx 配置文件即可。但这个 server 块必须要作为 Nginx 配置文件的第一个 server 块,不可以放在后面。server{
个人站点 2023年03月20日 660次浏览

SpringBoot:请求参数中特殊字符的处理

背景开发过程中遇到在请求参数中添加特殊字符导致请求报错的问题,特记录一下。解决问题复现代码:一个简单的 get 请求。@GetMapping("/t3")public String test3(@RequestParam String s){ return s;}POSTM
BUG 2023年03月20日 1,149次浏览

Nginx安装使用教程

前言Nginx 在 root 权限且有外网权限下的安装使用比较简单,而且网上教程也比较多,这里我们总结一下在没有 root 权限并且没有外网权限下的 Nginx 使用教程。但在博主实际的操作过程中,仍有不少操作使用了 sudo 权限和外网权限。实现安装Nginx下载Nginx安装包在官网找到对应的安
Nginx 2023年03月17日 712次浏览

MySQL:唯一索引中的NULL值

前言MySQL 中的 UNIQUE 索引,可以在一个或多个列中强制实现值的唯一性。但唯一索引中存在一个特性——那就是 NULL 值在 MySQL 中被视为不同的值。因此如果在 UNIQUE 索引中出现 NULL 值,那么其唯一性就失效了。实现单列UNIQUE索引建表语句:create table u
MySQL 2023年03月15日 1,285次浏览

Java:实体类中Integer和int的区别

前言实体类中 Integer 和 int 的区别。实现Integer 的默认值是 null,而 int 的默认值是0。数据库中的 INT 类型对应的是 Integer,而不是 int。定义属性值 int 类型的时候,在数据库中默认 null,当插入操作的时候会把默认值变成0。定义属性值 Intege
Java 2023年03月14日 837次浏览

Mybatis:大于、小于符号的写法

前言在 Mybatis 中 >、<、>=、<=等符号的使用。实现原符号 < <= > >=替换符号 &lt; &lt;= &gt; &gt;=记忆小技
Mybatis 2023年03月14日 596次浏览

SpringBoot:文件上传下载

前言在 Spring Boot 中实现文件的上传和下载。实现文件上传上传一个文件,并保存在指定位置:@PostMapping("/upload")public String upload(@RequestParam(value = "file") Multip
Java 2023年03月10日 892次浏览

Java:枚举类的用法

前言针对枚举类的基础用法大家可参考菜鸟教程,本文记录一下稍微复杂点的用法(不同用法的本质是相同的,只是形式有所不同)。实现设想这样一个应用场景:根据一个给定的值,如果这个值在某个集合内,就返回特定的 code 和 name 。定义枚举类针对如上场景,我们把值的集合定义为一个 List(已给定初始化值
Java 2023年03月08日 700次浏览