springboot redisson 分布式锁

<dependency>
        <groupId>org.redisson</groupId>
        <artifactId>redisson-spring-boot-starter</artifactId>
        <version>3.13.3</version>
</dependency>

  

package com.rdj.distributelock.controller;

import lombok.extern.slf4j.Slf4j;
import org.redisson.Redisson;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.concurrent.TimeUnit;

@RestController
@Slf4j
public class RedissonLockController {
    @Autowired
    private RedissonClient redissonClient;

    @RequestMapping("/resissonLock")
    public String resissonLock(){
        log.info("进入了方法");

        RLock rLock = redissonClient.getLock("order");

        try {
            rLock.lock(30, TimeUnit.SECONDS);
            log.info("获得了锁");
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }finally {
            log.info("释放了锁");
            rLock.unlock();
        }
        log.info("方法完成");
        return "finished";
    }
}

  

 

posted @ 2020-08-25 11:00  shijiu520  阅读(260)  评论(0编辑  收藏  举报