当前位置 : 主页 > 编程语言 > java >

如何使用hutool做本地缓存的工具类

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 用hutool做本地缓存的工具类 gradle中引入hutool依赖 本地缓存工具类 关于hutools工具包的常用方法 HttpUtil类 用hutool做本地缓存的工具类 gradle中引入hutool依赖 implementation group: 'cn.hutoo
目录
  • 用hutool做本地缓存的工具类
    • gradle中引入hutool依赖
  • 本地缓存工具类
    • 关于hutools工具包的常用方法
      • HttpUtil类

    用hutool做本地缓存的工具类

    gradle中引入hutool依赖

    implementation group: 'cn.hutool', name: 'hutool-all', version: '5.8.4'

    本地缓存工具类

    package com.demo.devops.common.cache;
    
    import cn.hutool.cache.CacheUtil;
    import cn.hutool.cache.impl.TimedCache;
    import cn.hutool.core.date.DateUnit;
    
    /**
     * @createTime 2022年07月30日 14:50:00
     */
    public class LocalCache {
    
        /**
         * 默认缓存时长
         */
        private static final long DEFAULT_TIMEOUT = 5 *DateUnit.MINUTE.getMillis();
        /**
         * 默认清理间隔时间
         */
        private static final long CLEAN_TIMEOUT = 5 * DateUnit.MINUTE.getMillis();
        /**
         * 缓存对象
         */
        private static final TimedCache<String, Object> TIMED_CACHE = CacheUtil.newTimedCache(DEFAULT_TIMEOUT);
    
        static {
            //启动定时任务
            TIMED_CACHE.schedulePrune(CLEAN_TIMEOUT);
        }
    
        public static void set(String key, Object value) {
            TIMED_CACHE.put(key, value);
        }
    
        public static void set(String key, Object value, long expire) {
            TIMED_CACHE.put(key, value, expire);
        }
    
        /**
         * 获取并重新计算过期时间
         */
        public static Object getWithUpdateLastAccess(String key) {
            return TIMED_CACHE.get(key);
        }
    
        /**
         * 获取
         *
         * @param key
         * @return
         */
        public static Object get(String key) {
            return TIMED_CACHE.get(key, false);
        }
    
        public static Set<String> keySet() {
            return TIMED_CACHE.keySet();
        }
    
    
        public static void remove(String key) {
            TIMED_CACHE.remove(key);
        }
    
        public static void clear() {
            TIMED_CACHE.clear();
        }
    
        public static class Constants {
            public static final String DICT_LIST_PREFIX = "dict:list:";
            public static final String DICT_ONE_PREFIX = "dict:one:";
            public static final String DICT_MAP_PREFIX = "dict:map:";
    
            public static final String SCRIPT = "script:";
        }
    }

    关于hutools工具包的常用方法

    近期接触的一个项目用到了hutools工具框架,以前没有接触该框架,发现该工具框架真是强大,是真香啊!所以把我项目中用到的工具类的使用情况记录下。

    HttpUtil类

    1、发送get请求【方式一特点:直接发送get请求】

    String url = "http://www.baidu.com/getUserInfo?user_id=";
    url +="LSL";
    String repsStr = HttpUtil.get(String.format(url));//发送get请求,并获取response
    JSONObject jsonObject =  JSON.parseObject(repsStr);
    JSONObject data = jsonObject.getJSONObject("data");
    String userName = data.getString("userName");

    2、发送get请求【方式二特点:添加报文头在发送get请求】

    String url = "http://www.baidu.com/getUserInfo?user_id=";
    url +="LSL";
     cn.hutool.http.HttpRequest httpq = HttpUtil.createGet(url);//创建get请求
     Map<String,String>  headerMap = new HashMap<>;
     headerMap.put("author","mjx");
     httpq.addHeaders(headerMap);//添加header
     String reps = httpq.execute().body();//发送get请求,获取response
    JSONObject jsonObject =  JSON.parseObject(reps );
    JSONObject data = jsonObject.getJSONObject("data");
    String userName = data.getString("userName");

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

    网友评论