• 关于缓存实现业务说明 :
  • 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

Contradiction
1 声望0 粉丝