在JAVA WEB,static属性的生命周期是和web容器共存,一直储存在内存中?

以前做内部项目与企业微信集成,获取access_token的时候专门用一个class 定义了一个 static 字段属性储存access_token值 并且这个 access_token没有做持久化(存入redis、或者db),请大佬分析下我这样的方案会有access_token内存泄漏的风险吗?(比如该字段属性失效 提前被GC回收) 或者在web并发请求下TokenStroe是否安全    下面有伪代码

class TokenStore{
    private static Map tokenMap
    static {

     Map tokenMap =  WXUtil.Post(url,corpId...)
    }
    
    //Web容器启动的时候随着.class的加载 直接去先获取一次ACCESS_TOKEN
    public static String ACCESS_TOKEN = tokenMap.get("ACCESS_TOKEN"); 
    public static String EXPIRE_TIME = tokenMap.get("EXPIRE_TIME");

}


//消费 token 伪代码

public List<User> getUserList(){
     String token = null;
    
     //null代表token过期或者没有初始化 在次使用WXUtil重新获取token 
    if(TokenStore.EXPIRE_TIME == null || System.currenttime()-ACCESS_TOKEN.EXPIRE_TIME > 7100){
        synchronized(TokenStore.class){
            if(TokenStore.EXPIRE_TIME == null || System.currenttime()-ACCESS_TOKEN.EXPIRE_TIME > 7100){
                TokenStore.EXPIRE_TIME =  WXUtil.Post(url,corpId...).get("EXPIRE_TIME");
                TokenStore.ACCESS_TOKEN =  WXUtil.Post(url,corpId...).get("ACCESS_TOKEN");
            } 
        }//end syn
     }

    token = TokenStore.ACCESS_TOKEN;
    
    List list = WXUtil.getUserList(url,token);
     
   
    return list ;
}

 

不要怕 这样不会出问题的