勇敢的打工人 2021-03-15 17:30 采纳率: 42.9%
浏览 769

Redisson注入为空 报空指针

import lombok.extern.slf4j.Slf4j;
import org.redisson.Redisson;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
/**
 * 自己手写()
 */
@Slf4j
public class RedisLockServer {

    @Autowired
    private RedisTemplate<String,String> redisTemplate;

    @Autowired(required = false)
    private Redisson redisson;

    public String redisLock(String goodID){
        RLock rLock = redisson.getLock(goodID);
        //加锁 5秒
        rLock.lock(5, TimeUnit.SECONDS);
        //业务代码 查询库存
        int goodTotal = Integer.parseInt(redisTemplate.opsForValue().get(goodID));
        if (goodTotal>0){
            redisTemplate.opsForValue().set(goodID,String.valueOf(--goodTotal));
            System.out.println("卖出一份,剩余库存:"+goodTotal);
        }else{
            System.out.println(" 售空 ");
        }
        //业务完成 释放锁
        rLock.unlock();
        return String.valueOf(goodTotal);
    }

}
class TestRedis{
    public static void main(String[] args) {
        RedisLockServer redisLockServer = new RedisLockServer();
        for (int i=0;i<100;i++){
            redisLockServer.redisLock("goodShop");
        }

    }

}
Exception in thread "main" java.lang.NullPointerException
	at com.knife.redis.RedisLockServer.redisLock(RedisLockServer.java:27)
	at com.knife.redis.TestRedis.main(RedisLockServer.java:48)

Process finished with exit code 1

空指针 我bug走了一下是注入Redisson是空的 求解决 !

 

  • 写回答

3条回答 默认 最新

  • king帅5 2021-03-15 18:05
    关注

    是不是没有配置bean,可以把其他代码贴出来

    评论

报告相同问题?

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗