当前位置: 首页 > news >正文

建设工程扣分查询网站长沙有什么做试卷的网站

建设工程扣分查询网站,长沙有什么做试卷的网站,北京江苏省住房和城乡建设厅网站,网络维护工程师工资多少【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 这段代码定义了一个名为 TokenUserInfoDto 的 DTO(数据传输对象),用于封装用户令牌信息。以下是对 JsonIgnoreProperties 和 Serializable 接口作用的详…

【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版

这段代码定义了一个名为 TokenUserInfoDto 的 DTO(数据传输对象),用于封装用户令牌信息。以下是对 @JsonIgnorePropertiesSerializable 接口作用的详细解释:


1. @JsonIgnoreProperties(ignoreUnknown = true)

作用

• 这是 Jackson 库 提供的注解,用于控制 JSON 序列化/反序列化时的行为。
ignoreUnknown = true 表示:当 JSON 字符串中包含 DTO 类中没有的字段时,忽略这些字段而不报错

为什么需要它?

场景:如果后端接收的 JSON 数据比 DTO 的字段多(例如前端传了 extraField,但 DTO 未定义该字段),默认情况下 Jackson 会抛出 UnrecognizedPropertyException
解决:添加此注解后,多余的字段会被静默忽略,确保反序列化不会因字段不匹配而失败。

示例
// JSON 数据(包含 DTO 中没有的字段 "age")
String json = "{\"userId\":\"123\", \"nickName\":\"Alice\", \"age\":25}";// 反序列化时,"age" 会被忽略,不会报错
TokenUserInfoDto dto = objectMapper.readValue(json, TokenUserInfoDto.class);

2. implements Serializable

作用

标记该类为可序列化的,表示该类的对象可以被转换为字节流(例如存储到文件、通过网络传输或存入 Redis 等缓存)。
• 需要定义一个 serialVersionUID 字段作为版本控制标识符。

为什么需要它?
  1. 网络传输
    • 在 RPC(如 Dubbo)或分布式系统中,对象需要跨 JVM 传输,必须实现 Serializable
  2. 持久化存储
    • 将对象保存到磁盘或数据库(如 Redis 的 value 需要实现序列化)。
  3. 兼容性
    serialVersionUID 用于验证序列化和反序列化的类是否兼容(如果类结构变更但未更新 UID,会抛出 InvalidClassException)。
示例
// 序列化对象到字节数组
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(dto);
byte[] bytes = bos.toByteArray();// 从字节数组反序列化
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
TokenUserInfoDto deserializedDto = (TokenUserInfoDto) ois.readObject();

3. 其他代码说明

字段含义
userId:用户唯一标识。
nickName:用户昵称。
avatar:用户头像 URL。
expireAt:令牌过期时间(时间戳)。
token:用户认证令牌(如 JWT)。
Getter/Setter
提供标准的 Java Bean 方法,便于框架(如 Spring、Jackson)通过反射访问字段。


总结

特性作用使用场景
@JsonIgnoreProperties(ignoreUnknown = true)忽略 JSON 中的未知字段防止前端多传字段导致反序列化失败
implements Serializable支持对象序列化网络传输、缓存存储、RPC 调用
serialVersionUID版本控制确保序列化兼容性

实际应用场景
• 该 DTO 可能用于用户登录后返回的令牌信息(通过 JSON 响应给前端)。
• 也可能被序列化后存入 Redis(作为缓存或分布式会话)。

http://www.dtcms.com/a/441424.html

相关文章:

  • 宁波建网站哪家好用点怎么制作网页链接在微信上发
  • 南昌网站推广医学网站建设风格
  • 有什么网站是帮别人做设计的百度智能云windows系统服务器建站
  • 山西省消防总队建设工程备案网站wordpress 登录密码
  • phpcms 专题网站模板手游传奇网站
  • 哔哩哔哩网站怎么做视频软件楼市最新消息
  • 网站怎么做备案大朗做网站在
  • 最新网站建设的模板下载成都实验室装修设计公司
  • 电子商务网站建设与管理课程论文南京润盛建设集团有限公司网站
  • 东莞南城外贸网站建设做搜索引擎网站
  • 做导航网站怎么盈利wordpress 交流群
  • html网站开头怎么做的制作网页需要什么软件
  • 厦门企业网站设计公司二建注册查询系统
  • 利用微博网站做淘客外贸企业网站源码
  • 网站建设续费合同网络营销八大目标是什么
  • 墨星写作网站app下载广州开发区交通投资集团有限公司
  • 北京宏福建设工程有限公司网站wordpress主机记录
  • 小学学校网站建设方案东莞建英文网站的公司
  • 登录官方网站网站和域名区别吗
  • 赣州建设局 网站今天进京最新通知
  • 国外网站流量查询北京市住房和城乡建设网官网
  • 外贸网站产品分析wordpress域名变更
  • 切图做网站如何做怎样注册电商平台成为卖家
  • 大学生html网页设计作业江苏网站优化建站
  • 商业网站建设咨询女人脱内衣裤给男人做网站
  • 网站开发项目启动成本WordPress微信如何赚钱
  • 二级域名网站怎么建设如何网站建设
  • 手机测评做视频网站淘宝客网站建设
  • 做电脑网站用什么软件好用专业的建设网站
  • 建站公司 phpwind中文域名网站建设