序列化是SpringBoot项目的核心基础能力,核心作用是将Java对象转换为可传输、可存储的字节流/字符串,反序列化则是逆向还原对象,广泛应用于HTTP接口响应、Redis缓存、RPC远程调用、消息队列传输、数据持久化等场景。
SpringBoot生态的序列化框架主要分为文本型序列化框架(JSON为主,通用可读)和二进制序列化框架(高性能、压缩率高)两大类,不同框架的性能、兼容性、安全性、使用成本差异极大。下文将详细展开所有主流框架的核心特性、优劣及适用场景。

一、文本型JSON序列化框架(SpringBoot最常用)
JSON序列化具备可读性强、跨语言兼容、调试便捷的特点,是Web接口、通用数据交互的首选,包含Jackson、Fastjson2、Gson三大主流框架。
1. Jackson(SpringBoot默认序列化框架)
1.1 核心功能
Jackson是FasterXML社区开源的通用序列化框架,是SpringBoot 2.x/3.x默认内置、无需额外引入依赖的JSON处理组件,核心支持Java对象与JSON、XML、YAML多格式数据的双向转换。同时提供完整的注解体系、自定义序列化器/反序列化器、数据脱敏、格式适配、空值处理、日期格式化等全套企业级能力,完美适配Spring MVC、Spring WebFlux全场景。
1.2 核心特点
生态深度绑定SpringBoot,零配置即可开箱即用,自动适配全局Web序列化规则;
注解体系完善,支持灵活控制字段序列化规则(忽略字段、别名、日期格式化、空值策略等);
支持流式序列化、大数据量分批处理,避免大对象序列化内存溢出;
扩展性极强,可通过Module模块拓展功能,适配枚举、JDK8新时间类、泛型、嵌套复杂对象等场景;
严格遵循JSON规范,序列化结果标准化,无语法兼容问题。
1.3 优缺点
优点:
安全性极高,长期维护、漏洞极少,企业级稳定性拉满;
功能全面,覆盖99%的业务序列化场景,适配复杂对象、泛型、嵌套结构;
Spring生态原生适配,无兼容性冲突,支持全局统一配置;
高并发场景性能稳定,序列化/反序列化性能均衡。
缺点:
极致性能略低于Fastjson2,小对象序列化速度稍弱;
默认配置较为严格,部分特殊场景(空对象、空数组)需要手动配置适配;
API相对繁琐,简单场景代码冗余度略高。
1.4 应用场景
SpringBoot项目默认首选方案,适用于绝大多数企业级场景:Web RESTful接口请求响应、常规业务JSON转换、微服务跨模块数据交互、结构化日志输出、配置文件解析等。除极致性能压榨场景外,均可优先使用。
2. Fastjson2(阿里高性能JSON框架,Fastjson1升级版)
2.1 核心功能
Fastjson2是阿里开源的新一代JSON序列化框架,是老旧Fastjson1的安全重构升级版,完全兼容原有API,核心实现Java对象与JSON的高速双向转换。保留了初代极致的性能优势,修复了所有高危安全漏洞,同时拓展了注解配置、自定义序列化、数据适配、多格式兼容等企业级能力。
2.2 核心特点
性能顶尖,小对象、大批次数据序列化速度优于Jackson,吞吐量更高;
API极简,开箱即用,代码简洁,开发效率高;
修复初代所有反序列化漏洞,安全性达到企业生产标准;
默认自适应能力强,自动适配日期、空值、泛型,无需大量手动配置;
支持JSON Schema、格式化输出、数据过滤、脱敏等拓展功能。
2.3 优缺点
优点:
序列化性能优异,高并发、大数据量场景吞吐量优于Jackson;
使用简单,学习成本低,代码简洁高效;
新版本安全性可靠,无高危漏洞风险;
对复杂泛型、集合类型的适配性较好。
缺点:
非SpringBoot原生默认框架,需要手动排除Jackson依赖、手动配置全局序列化;
部分序列化规则与Jackson不统一,切换框架可能出现字段格式、空值展示差异;
生态拓展性弱于Jackson,复杂定制化场景适配能力不足。
2.4 应用场景
适用于高并发、高性能优先的SpringBoot项目,如高频接口服务、海量日志序列化、消息队列高速消息转换、大数据批量处理场景。不建议常规业务系统盲目替换默认Jackson。
3. Gson(谷歌轻量JSON框架)
3.1 核心功能
Gson是Google开源的轻量级JSON序列化框架,主打简洁、轻量化,核心实现Java对象与JSON的基础双向转换,无冗余复杂功能,专注基础序列化能力,适配简单数据结构的快速转换。
3.2 核心特点
极致轻量,依赖体积小,无多余依赖,启动速度快;
API极简,零配置即可使用,上手成本极低;
反序列化稳定性高,容错性较好,对不规范JSON兼容性强;
跨平台适配性强,Java后端与Android端数据交互标准统一。
3.3 优缺点
优点:
轻量无负担,适合小型项目、轻量化服务;
反序列化容错率高,不易因JSON格式轻微异常报错;
适配Android生态,移动端与后端联调兼容性好。
缺点:
性能较弱,高并发、大数据量场景吞吐量远低于Jackson、Fastjson2;
高级功能缺失,无完善的注解体系、自定义序列化、精细化格式控制能力;
对复杂嵌套对象、泛型集合的适配性差,易出现解析异常;
非Spring生态主流,无原生自动配置,需要手动整合。
3.4 应用场景
仅适用于简单业务场景、小型轻量化服务、后端与Android端联调项目,不适合中大型企业级SpringBoot项目、高并发接口、复杂对象序列化场景。
二、二进制序列化框架(高性能、高压缩率)
二进制序列化摒弃文本格式,以字节流传输存储,具备体积小、速度快、保密性强的特点,牺牲可读性换取极致性能,主要用于Redis缓存、RPC远程调用、内部服务通信、大数据传输场景。主流框架包含Kryo、Protobuf、Hessian、MessagePack。
1. Kryo(高性能Java专属二进制框架)
1.1 核心功能
Kryo是一款专为Java设计的高性能二进制序列化框架,无需依赖中间描述文件,可直接实现Java对象与字节流的高速转换,支持对象复用、引用追踪、循环依赖处理,完美适配Java生态高性能传输场景。
1.2 核心特点
性能极致,序列化速度、压缩率远超所有JSON框架,也优于多数二进制框架;
支持Java对象循环依赖、复杂嵌套对象序列化,解决JDK序列化的痛点;
支持对象池复用,减少频繁创建对象的内存开销;
API简洁,使用成本低于Protobuf,无需定义模板文件。
1.3 优缺点
优点:
Java生态序列化性能天花板,高并发缓存、RPC场景性能极强;
压缩率高,字节流体积远小于JSON,节省网络、存储资源;
解决JDK序列化效率低、不支持循环依赖、兼容性差的问题。
缺点:
不跨语言,仅支持Java,无法与Go、Python、PHP等语言交互;
版本兼容性差,对象字段增减可能导致新旧版本序列化不兼容;
无可读性,调试排查问题难度大;
需要手动配置序列化规则、注册类,否则可能出现异常。
1.4 应用场景
纯Java技术栈的SpringBoot项目内部场景:Redis高性能缓存序列化、Dubbo等Java专属RPC框架传输、本地内存序列化、分布式会话存储、内部服务高频数据交互。禁止用于跨语言通信场景。
2. Protobuf(谷歌跨语言结构化二进制框架)
2.1 核心功能
Protobuf(Protocol Buffers)是谷歌开源的跨语言结构化二进制序列化框架,通过独立的.proto文件定义数据结构,通过编译器生成各语言的实体类,实现跨语言、跨平台的高速序列化与数据交互。
2.2 核心特点
强结构化、强类型约束,数据格式严谨,容错性、稳定性极高;
真正跨语言,支持Java、Go、Python、C++、JS等几乎所有主流开发语言;
压缩率极高,字节体积仅为JSON的1/3左右,传输成本极低;
版本兼容性优秀,支持字段新增、删除、兼容新旧版本协议;
适合标准化、规范化的接口协议定义。
2.3 优缺点
优点:
跨语言能力顶级,是微服务多语言架构的首选序列化方案;
性能优异、体积极小,高吞吐、大数据传输场景优势明显;
协议标准化,版本兼容稳定,适合长期迭代的大型项目;
安全性高,二进制格式不易被篡改、解析。
缺点:
使用成本高,需要编写.proto协议文件、编译生成代码,流程繁琐;
无可读性,调试需要专门工具解析;
不支持动态数据结构,所有字段必须提前定义,灵活性差;
简单业务场景开发效率低,过度冗余。
2.4 应用场景
大型微服务多语言架构、跨部门标准化RPC接口、海量数据传输、物联网设备通信、大数据同步、固定结构化数据交互场景,是大厂标准化服务通信的主流方案。
3. Hessian(轻量跨语言二进制框架)
3.1 核心功能
Hessian是一款轻量级跨语言二进制序列化框架,基于HTTP协议传输,无需复杂协议定义,语法简洁,兼容多种开发语言,主打轻量、易用,是早期RPC框架的主流序列化方案。
3.2 核心特点
轻量简洁,依赖少、使用简单,无需编译模板文件;
支持跨语言,兼容Java、Python、PHP、C#等主流语言;
序列化体积小于JSON,性能优于JDK原生序列化;
基于HTTP传输,穿透性好,无端口拦截问题。
3.3 优缺点
优点:
使用门槛低,兼顾跨语言与易用性;
相比JDK序列化,体积更小、速度更快、兼容性更好;
适配老旧系统、传统RPC服务,生态兼容完善。
缺点:
性能弱于Kryo、Protobuf,高并发场景瓶颈明显;
新版本迭代缓慢,生态逐渐老旧;
复杂对象序列化兼容性一般,存在少量类型适配问题。
3.4 应用场景
老旧SpringBoot项目改造、传统Hessian RPC服务对接、中小型项目跨语言轻量通信、非极致性能要求的内部服务数据传输,新项目已逐步被Protobuf、Kryo替代。
4. MessagePack(轻量化二进制JSON框架)
4.1 核心功能
MessagePack是一款兼容JSON语义的二进制序列化框架,可理解为“二进制版JSON”,保留JSON的灵活特性,同时具备二进制的高压缩、高性能优势,无需预设数据结构。
4.2 核心特点
兼顾灵活性与性能,无需定义协议文件,支持动态数据结构;
压缩率比JSON高40%以上,体积更小、传输更快;
跨语言支持完善,兼容所有主流开发语言;
语义与JSON一致,迁移适配成本极低。
4.3 优缺点
优点:
平衡了JSON的灵活性和二进制的高性能、高压缩率;
使用简单,无需繁琐配置和协议定义;
跨语言、轻量化,适配中小型项目。
缺点:
性能略低于Protobuf、Kryo,极致高并发场景不占优势;
无强类型约束,数据校验能力弱于Protobuf。
4.4 应用场景
需要兼顾灵活性与性能的场景:Redis缓存序列化、中小型微服务跨语言通信、移动端与后端数据传输、需要替换JSON优化传输体积的业务场景。

三、SpringBoot序列化框架选型总结
通用Web业务、企业级常规项目:优先使用默认Jackson,稳定、安全、生态完善;
高并发高性能JSON场景:选用Fastjson2,手动替换Jackson,提升吞吐量;
简单小型项目、Android联调:轻量化选用Gson;
纯Java栈高性能缓存、内部RPC:选用Kryo,极致性能;
多语言微服务、标准化协议通信:选用Protobuf;
老旧系统适配、轻量跨语言通信:选用Hessian;
兼顾灵活与压缩性能:选用MessagePack。
原文链接
欢迎访问 小易撩挨踢