public List<WeixinMenu> getList() { List<WeixinMenu> weixinMenuList= (List<WeixinMenu>) redisTemplate.opsForValue().get("weixinMenuList"); //先在缓存中查询一遍 if (weixinMenuList==null){ synchronized (this){ weixinMenuList= (List<WeixinMenu>) redisTemplate.opsForValue().get("weixinMenuList"); //如果缓存空了,在线程加锁的情况下再从缓存中查询一次 if (weixinMenuList==null){ weixinMenuList=WeixinMenuMng.getList(); //还是没有查到,就从数据库查询,查询后放到缓存中 redisTemplate.opsForValue().set("weixinMenuList",weixinMenuList); } } } return weixinMenuList; }