- 关于缓存实现业务说明 :
- 1.应该查询缓存
- 2.判断缓存中是否有数据 *
- 3.如果没有数据,则查询数据库
- 4.如果有数据,则直接返回数据.
- 思考: redis中主要操作的类型是String类型,业务数据如何于String进行交互!!!!! * 实现思路: 业务数据
~ JSON~ String
设计API:
方法1: 将任意的对象转化为JSON.
方法2: 将任意的JSON串转化为对象.
要求完成异常的处理
public class ObjectMapperUtil{
//1.定义常量对象:
优势1:对象独一份,节省空间
优势2:对象不允许别人随意篡改
private static final ObjectMapper Mapper = new ObjectMapper();
//1.任意对象转换为Json
public static String toJson(Object object){
try {
if(object==null){
throw new RuntimeException("传递的参数object为null,请认真检查");
}
return Mapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
//应该将检查异常,转化为运行时异常
throw new RuntimeException("传递的对象不支持json转化/检查是否有get/set方法");
}
}
//2.将任意Json转换为对象,传递什么类型转化什么对象
public static <T> T toObject(String json,Class<T> target) {
//判断字符串的API
if (StringUtils.isEmpty(json) || target == null) {
throw new RuntimeException("传递的参数不能为null");
}
try {
return Mapper.readValue(json, target);
} catch (JsonProcessingException e) {
e.printStackTrace();
throw new RuntimeException("json转换异常");
}
}
}
service中的实现步骤:
- 步骤: * 先查询Redis缓存 K:V
- true 直接返回数据
- false 查询数据库 *
- KEY有什么特点: 1.key应该动态变化 2.key应该标识业务属性 * key=ITEM_CAT_PARENTID::parentId
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。