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

序列化Serializable

一、传输对象的方式

将对象从内存传输到磁盘进行保存,或者进行网络传输,有两种方式:

  • 实现Serializable接口,直接传输对象
  • 转成json字符串后,进行字符串传输
    在这里插入图片描述

二、直接传输对象

implements Serializable

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("learning_lesson")
@ApiModel(value="LearningLesson对象", description="学生课程表")
public class LearningLesson implements Serializable {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "主键")@TableId(value = "id", type = IdType.ASSIGN_ID)private Long id;@ApiModelProperty(value = "学员id")private Long userId;@ApiModelProperty(value = "课程id")private Long courseId;@ApiModelProperty(value = "课程状态,0-未学习,1-学习中,2-已学完,3-已失效")private LessonStatus status;@ApiModelProperty(value = "每周学习频率,例如每周学习6小节,则频率为6")private Integer weekFreq;@ApiModelProperty(value = "学习计划状态,0-没有计划,1-计划进行中")private PlanStatus planStatus;@ApiModelProperty(value = "已学习小节数量")private Integer learnedSections;@ApiModelProperty(value = "最近一次学习的小节id")private Long latestSectionId;@ApiModelProperty(value = "最近一次学习的时间")private LocalDateTime latestLearnTime;@ApiModelProperty(value = "创建时间")private LocalDateTime createTime;@ApiModelProperty(value = "过期时间")private LocalDateTime expireTime;@ApiModelProperty(value = "更新时间")private LocalDateTime updateTime;
}

举例Redis直接传输对象
单元测试

    //使用RedisTemplate<String,Object>需要配置一个RedisTemplate<String,Object>@Autowiredprivate RedisTemplate<String,Object> redisTemplate;@Testpublic void Test1_Add(){User u = User.builder().id(1000).name("zhangsan").phone("15730000001").build();redisTemplate.opsForValue().set("user1", u);}@Testpublic void Test1_Get(){Object obj = redisTemplate.opsForValue().get("user1");// 这里不能把Object强转为User类 否则会java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.gzdemo.redisdemo.domain.UserUser user = JSONUtil.toBean(JSONUtil.toJsonStr(obj), User.class);System.out.println(user);}

如果不implements Serializable,会报错,除非RedisTemplate<String,Object>配置了各种序列化器。

http://www.lryc.cn/news/389814.html

相关文章:

  • 编写静态库
  • hive的表操作
  • 基于多视点编码光场的全景三维重建方法
  • Spring Boot中的分布式文件系统
  • three.js地理坐标系有哪些,和屏幕坐标系的转换。
  • 聊聊C++20的三向比较运算符 `<=>`
  • CVE-2024-0603 漏洞复现
  • 西部智慧健身小程序+华为运动健康服务
  • Spring Boot中如何处理异步任务
  • 数字化精益生产系统--RD研发管理系统
  • 鱼眼相机 去畸变
  • DC/AC电源模块:为智能家居设备提供恒定的电力供应
  • 小红书运营教程02
  • k8s自动清理节点服务
  • JS如何把年月日转为时间戳
  • 【YOLOv5进阶】——引入注意力机制-以SE为例
  • 【C++题解】1456. 淘淘捡西瓜
  • 用Python读取Word文件并提取标题
  • Windows编程上
  • BiTCN-Attention一键实现回归预测+8张图+特征可视化图!注意力全家桶再更新!
  • zoom缩放问题(关于ElementPlus、Echarts、Vue3draggable等组件偏移问题)
  • 【后端面试题】【中间件】【NoSQL】MongoDB的配置服务器、复制机制、写入语义和面试准备
  • 视频监控汇聚平台LntonCVS视频监控业务平台具体有哪些功能?
  • 我不小心把生产的数据改错了!同事帮我用MySQL的BinLog挽回了罚款
  • Windows系统安装NVM,实现Node.js多版本管理
  • k8s部署单节点redis
  • 云微客矩阵系统:如何利用智能策略引领营销新时代?
  • 嵌入式Linux系统编程 — 6.3 kill、raise、alarm、pause函数向进程发送信号
  • Swoole实践:如何使用协程构建高性能爬虫
  • 基于人脸68特征点识别的美颜算法(一) 大眼算法 C++