自定义缓存 懒惰加载 实际案例 实际案例 //创建缓存 private final List<User> masters=new CopyOnWriteArrayList<>(); private final Map<String ,User> masterMap= new ConcurrentHashMap<>(); private final Timer timer= new Timer(); //代码块 { timer.schedule(new TimerTask() { @Override public void run() { synchronized (masters){ masters.clear(); masterMap.clear(); } } },1000*60*60,1000*60*60); } @Override public List<User> getMaster() { if (masters.isEmpty()){ synchronized (masters){ if (masters.isEmpty()){ QueryWrapper<User> qw= new QueryWrapper<>(); qw.eq("type",1);//x学生是0 老师 是1 List<User> list = userMapper.selectList(qw); //初始化masters masters.addAll(list); masters.forEach(master ->masterMap.put(master.getNickname(),master)); } } } return masters; } @Override public Map<String, User> getMasterMap() { if (masterMap.isEmpty()){ getMaster(); } return masterMap; } }