如何使用hutool做本地緩存的工具類
用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 {
/**
* 默認(rèn)緩存時(shí)長
*/
private static final long DEFAULT_TIMEOUT = 5 *DateUnit.MINUTE.getMillis();
/**
* 默認(rèn)清理間隔時(shí)間
*/
private static final long CLEAN_TIMEOUT = 5 * DateUnit.MINUTE.getMillis();
/**
* 緩存對象
*/
private static final TimedCache<String, Object> TIMED_CACHE = CacheUtil.newTimedCache(DEFAULT_TIMEOUT);
static {
//啟動(dòng)定時(shí)任務(wù)
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);
}
/**
* 獲取并重新計(jì)算過期時(shí)間
*/
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:";
}
}關(guān)于hutools工具包的常用方法
近期接觸的一個(gè)項(xiàng)目用到了hutools工具框架,以前沒有接觸該框架,發(fā)現(xiàn)該工具框架真是強(qiáng)大,是真香??!所以把我項(xiàng)目中用到的工具類的使用情況記錄下。
HttpUtil類
1、發(fā)送get請求【方式一特點(diǎn):直接發(fā)送get請求】
String url = "http://www.baidu.com/getUserInfo?user_id=";
url +="LSL";
String repsStr = HttpUtil.get(String.format(url));//發(fā)送get請求,并獲取response
JSONObject jsonObject = ?JSON.parseObject(repsStr);
JSONObject data = jsonObject.getJSONObject("data");
String userName = data.getString("userName");2、發(fā)送get請求【方式二特點(diǎn):添加報(bào)文頭在發(fā)送get請求】
String url = "http://www.baidu.com/getUserInfo?user_id=";
url +="LSL";
cn.hutool.http.HttpRequest httpq = HttpUtil.createGet(url);//創(chuàng)建get請求
Map<String,String> ?headerMap = new HashMap<>;
headerMap.put("author","mjx");
httpq.addHeaders(headerMap);//添加header
String reps = httpq.execute().body();//發(fā)送get請求,獲取response
JSONObject jsonObject = ?JSON.parseObject(reps );
JSONObject data = jsonObject.getJSONObject("data");
String userName = data.getString("userName");以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot CountDownLatch多任務(wù)并行處理的實(shí)現(xiàn)方法
本篇文章主要介紹了SpringBoot CountDownLatch多任務(wù)并行處理的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
SpringBoot實(shí)現(xiàn)國密通信的流程步驟
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)國密通信的流程步驟,我們需要完成以下步驟:生成支持國密的證書,配置兩個(gè) Spring Boot 項(xiàng)目,使用國密證書實(shí)現(xiàn) HTTPS和驗(yàn)證通信是否成功,通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-11-11
Spring boot詳解緩存redis實(shí)現(xiàn)定時(shí)過期方法
本篇文章分享的就是spring boot中的一個(gè)輪子,spring cache注解的方式實(shí)現(xiàn)接口數(shù)據(jù)緩存。默認(rèn)的配置想非常簡單,但是有一個(gè)弊端是緩存數(shù)據(jù)為永久緩存,本次將介紹如何設(shè)置接口緩存數(shù)據(jù)的過期時(shí)間2022-07-07
SpringBoot響應(yīng)處理實(shí)現(xiàn)流程詳解
這篇文章主要介紹了SpringBoot響應(yīng)處理實(shí)現(xiàn)流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10
Spring Security Oauth2.0 實(shí)現(xiàn)短信驗(yàn)證碼登錄示例
本篇文章主要介紹了Spring Security Oauth2.0 實(shí)現(xiàn)短信驗(yàn)證碼登錄示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01

