Java过期时间类的设计

过期时间工具类:

public class ExpireDataUtil {

    private static Map<String,ExpireData> map = new HashMap();

    public static void add(String key,String value,long expireSeconds){
        ExpireData expireData = new ExpireData(key,value,expireSeconds);
        map.put(key,expireData);
    }

    public static String get(String key){
        ExpireData expireData = map.get(key);
        if(expireData == null){
            return null;
        }
        long nowTime = System.currentTimeMillis() / 1000;
        if(nowTime < expireData.getEndTime()){
            return expireData.getValue();
        }else{
            return null;
        }
    }

    @Data
    static class ExpireData{
        private String key;
        private String value;
        private long expireSeconds;
        private long startTime;
        private long endTime;

        public ExpireData(String key, String value, Long expireSeconds) {
            this.key = key;
            this.value = value;
            this.expireSeconds = expireSeconds;
            this.startTime = System.currentTimeMillis() / 1000;
            this.endTime = startTime + expireSeconds;
        }
    }

}

在代码中的使用:

    public static String getAccessToken() {
        // 官网获取的 API Key 更新为你注册的
        String clientId = "********";
        // 官网获取的 Secret Key 更新为你注册的
        String clientSecret = "***********";

        String token = ExpireDataUtil.get("baiduToken");
        if(null == token){
            String tempToken = getAccessToken(clientId, clientSecret);
            ExpireDataUtil.add("baiduToken",tempToken,2591000);
            return tempToken;
        }else{
            return ExpireDataUtil.get("baiduToken");
        }
    }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值