You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Spring Boot Session存储非可序列化对象报错(实现Serializable仍无效)

问题核心原因

你给BanksMvcController实现Serializable属于无效操作,报错指向的第62行代码是你往Session中存入AccountListWrapper对象的逻辑,该报错是要求存入Session的对象本身以及它内部嵌套的所有自定义对象都要支持序列化,和Controller类是否可序列化无关。

具体修复步骤

  • 首先修改AccountListWrapper类,让它实现Serializable接口,同时显式声明序列化ID,避免后续类改动后出现序列化版本不兼容问题:
public class AccountListWrapper implements Serializable {
    // 显式声明序列化ID
    private static final long serialVersionUID = 1L;
    // 原有类逻辑不变
}
  • 接着检查AccountListWrapper内部嵌套的所有自定义类,你代码里用到了Account类,也需要让它实现Serializable接口并声明序列化ID:
public class Account implements Serializable {
    private static final long serialVersionUID = 1L;
    // 原有类逻辑不变
}
  • 如果两个类内部存在不需要序列化的字段(比如数据库连接、Spring注入的服务类等),给对应字段加上transient关键字修饰,序列化时会自动跳过这类字段。

额外注意

不要把Spring容器管理的Bean(比如Service、Mapper实例)存入Session,这类Bean本身不可序列化,也没有存入会话的必要,需要使用时直接通过@Autowired注入即可。

内容的提问来源于stack exchange,提问作者user630702

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:27:04