@Component
public class InitMccAccount implements ApplicationRunner {
private static final Logger logger = LoggerFactory.getLogger(InitMccAccount.class);
@Resource
private MccAccountDao mccAccountDao;
@Override
public void run(ApplicationArguments args) throws Exception {
logger.info("init mcc start");
List<MccAccount> mccAccounts = mccAccountDao.list();
for(MccAccount mccAccout : mccAccounts){
MccAccoutCache.setCache(mccAccout.getId(), mccAccout);
}
logger.info("init mcc end");
}
}
使用ConcurrentHashMap该map键值对来实现
public class MccAccoutCache {
private static final Logger logger = LoggerFactory.getLogger(MccAccoutCache.class);
private static Map<Long, MccAccount> cache = new ConcurrentHashMap<>();
public static void setCache(Long id, MccAccount mccAccount){
cache.put(id, mccAccount);
}
public static MccAccount getMccAccount(Long id){
return cache.get(id);
}
public static void removeCache(Long id){
cache.remove(id);
}
public static Map<Long, MccAccount> getCache(){
return cache;
}
}