feat(user): 引入本地缓存优化用户信息查询性能
- 添加 Caffeine 依赖并配置本地缓存 - 实现用户信息多级缓存:本地缓存 -> Redis -> 数据库 - 新增用户信息缓存KEY常量及构建方法 - 配置自定义线程池用于异步缓存操作 - 实现缓存空对象防止击穿与过期时间随机化 - 添加 JsonUtils 工具类解析 JSON 字符串为对象的方法
This commit is contained in:
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
public class JsonUtils {
|
||||
private static ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||
@@ -33,4 +34,21 @@ public class JsonUtils {
|
||||
public static String toJsonString(Object obj) {
|
||||
return OBJECT_MAPPER.writeValueAsString(obj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 JSON 字符串转换为对象
|
||||
*
|
||||
* @param jsonStr JSON 字符串
|
||||
* @param clazz 目标对象类型
|
||||
* @return 目标对象
|
||||
* @param <T> 目标对象类型
|
||||
*/
|
||||
@SneakyThrows
|
||||
public static <T> T parseObject(String jsonStr, Class<T> clazz) {
|
||||
if (StringUtils.isBlank(jsonStr)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return OBJECT_MAPPER.readValue(jsonStr, clazz);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user