魔法值工具类 xxxConstUtils
public class RedisConstants {public static final String LOGIN_CODE_KEY = "login:code:";public static final Long LOGIN_CODE_TTL = 2L;public static final String LOGIN_USER_KEY = "login:token:";public static final Long LOGIN_USER_TTL = 36000L;}
DTO
注意**DTO**和 **Model**的区别
- Model 是领域对象,面向数据表
- DTO (Data Transfer Object) 一般只封装 UI 需要的信息,可以由几个实体组成,也可以是一个实体的部分信息。
对象存入Redis
由于通常我们用的 SpringDataRedis 用的是 StringRedisTemplate ,所以在存入Redis时需要将对象序列化为 **JSON**字符串。**JSON**-> **String**
可选项有:
<!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.17</version></dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency>
扩展对象属性(例如 逻辑缓存对象)
- 场景:如果我们需要扩展一个对象的属性,在最小侵入性前提下…
:::danger 使用Hutool的JSONUtil 从上面这个逻辑过期缓存对象 :::@Data//逻辑缓存对象public class RedisLogicalExpire {public LocalDateTime expireTime;public Object data;}
业务逻辑分支语句
业务逻辑中遇到分支,先判断并返回逻辑简单的那一部分,后续再处理复杂逻辑。
自动拆箱空指针风险
//避免自动拆箱空指针风险return Boolean.TRUE.equals(isGetLock);
