短链接day02
·

枚举异常类,调用枚举则是以枚举创建一个对象

AbstractException是继承RuntimeException的异常javabean类,其中包含code和message。下面三个则是在不同情况下的的javabean,均继承AbstractException

Result是返回值的模板,其中包括code返回码,message返回消息,data响应数据,其中有一个
isSuccess方法,is开头的会在mvc加载时候被spring mvc自动调用,以此来判断success的状态。Results则是result的对象构造器,其中包含了success时候的方法,和失败时返回的failure方法(在全局异常类中调用。)。

这是一个序列化器,当mvc最终返回给前端数据的时候,spring自带的序列化器会将返回对象转换成json格式,所以前端展示的就是json格式的数据,在spring进行序列化的时候,会查看返回值的javabean,
如果其中包含@JsonSerialize,则会调用对应的序列化器,具体流程:
//1. Controller return userRespDTO
// ↓
//2. Spring 的 MappingJackson2HttpMessageConverter 接管
// ↓
//3. Jackson 开始构建 JSON(此时 JSON 还不存在)
// ↓
//4. 扫描到 phone 字段有 @JsonSerialize 注解
// ↓
//5. Jackson 暂停默认序列化,调用自定义序列化器
// ↓
//6. 传入参数:
// - phone = "13812345678"(原始值)
// - jsonGenerator = JSON 构建工具(正在工作中)
// - serializerProvider = 序列化配置提供者
// ↓
//7. serialize() 方法执行:
// - 脱敏:13812345678 → 138****5678
// - 写入:jsonGenerator.writeString("138****5678")
// ↓
//8. Jackson 继续序列化其他字段
// ↓
//9. 完整的 JSON 构建完成,返回给前端
![]()
这是一个全局异常类,当有异常抛出就会被他捕获,这就是为什么controller中只需要return result.success();

例如在上方这里抛出。
布隆过滤器

用构造器注入redisson

用contains方法即可查询布隆过滤器里是否有相同参数。
分布式锁加布隆过滤器
当同时有多个请求同时请求多次同一用户名的注册方法:

则用getLock+锁名,获取锁,如果成功则执行注册方法,失败则返回错误信息,最终都要执行unlock()进行解锁。
更多推荐
所有评论(0)