• 基于数据库悲观锁的分布式锁


    一、基于数据库悲观锁的分布式锁 

     代码

       

    package com.example.distributelock.controller;
    
    import com.example.distributelock.dao.DistributeLockMapper;
    import com.example.distributelock.model.DistributeLock;
    import com.example.distributelock.model.DistributeLockExample;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.transaction.annotation.Transactional;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantLock;
    
    @RestController
    @Slf4j
    public class DemoController {
        @Resource
        private DistributeLockMapper distributeLockMapper;
    
        @RequestMapping("singleLock")
        @Transactional(rollbackFor = Exception.class)
        public String singleLock() throws Exception {
            log.info("我进入了方法!");
            DistributeLock distributeLock = distributeLockMapper.selectDistributeLock("demo");
            if (distributeLock==null) throw new Exception("分布式锁找不到");
            log.info("我进入了锁!");
            try {
                Thread.sleep(20000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "我已经执行完成!";
        }
    }
    Controller
  • 相关阅读:
    [转]Eclipse之ANT使用
    [转]深入浅出解读微软云计算:让云触手可及
    [转]android的selector,背景选择器
    [转]android 个人铃声设置代码
    [转]Android中的Frame动画
    [转]WebGL中文教程
    节点遍历函数
    javascript深拷贝
    javascript 跨浏览器的事件系统
    CSS选择器的权重详解
  • 原文地址:https://www.cnblogs.com/callbin/p/14580274.html
Copyright © 2020-2023  润新知