
📝个人主页:哈__
期待您的关注

目录
🌼前言
🔒单机环境下防止接口重复提交
📕导入依赖
        <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的生成并不是一个轻松的问题。本文的内容仅建议作为学习使用。










