/** 开始定时任务,失效期到时,执行清理cache */ private static synchronized void startSchedule() { Timer timer = new Timer(); timer.schedule( new TimerTask() { @Override public void run() { AccessTokenManager.clearCache(); } }, ACCESS_TOKEN_CACHE.getExpiresIn() * 1000); }
/** * 获取accessToken <br> * 如果当前的token已经过期,会从微信服务器重新取一次 <br> * 如果当前的token未过期,直接返回当前的token * * @return accessToken */ public static String getAccessToken() { if (null == ACCESS_TOKEN_CACHE) { synchronized (AccessTokenManager.class) { if (null == ACCESS_TOKEN_CACHE) { ACCESS_TOKEN_CACHE = getAccessTokenFromWX(); startSchedule(); } } } return ACCESS_TOKEN_CACHE.getAccessToken(); }