- 对于缓存实现业务阐明 :
- 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