📝个人主页:哈__
期待您的关注
目录
🌼前言
🔒单机环境下防止接口重复提交
📕导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
📂项目结构
🚀创建自定义注解
✈创建AOP切面
🚗创建Conotroller
💻分布式环境下防止接口重复提交
📕导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
📂项目结构
🚀创建自定义注解
🚲创建key的生成工具类
🔨创建Redis工具类
🔥创建Student类
🚗创建AOP切面类
🛵创建Controller
@RestController
@RequestMapping("/student")
public class StudentController {
@RequestMapping("/get-student")
@CacheLock(prefix = "stu2",expire = 5,timeUnit = TimeUnit.SECONDS)
public String getStudent(){
return "张三";
}
@RequestMapping("/get-student2")
@CacheLock(prefix = "stu2",expire = 5,timeUnit = TimeUnit.SECONDS)
public String getStudent2(Student student){
return "张三";
}
}
最后,上边的key生成还有待商榷,分布式环境下key的生成并不是一个轻松的问题。本文的内容仅建议作为学习使用。