当前位置:网站首页 > 技术博客 > 正文

spring fastive



是 的一个重大升级版本。

以下摘自官方的介绍:

是一个性能极致并且简单易用的Java JSON库。

  • 是项目的重要升级,和FASTJSON 1相比,性能有非常大的提升,解决了autoType功能因为兼容和白名单的安全性问题。
  • 性能极致,性能远超过其他流行 JSON 库,包括 jackson/gson/org.json,性能数据: https://github.com/alibaba/fastjson2/wiki/fastjson_benchmark
  • 支持JDK新特性,包括/,针对优化,支持Record,支持
  • 完善的支持,支持 SQL:2016 的 语法
  • 支持,客户端和服务器一套 API
  • 支持 https://alibaba.github.io/fastjson2/kotlin_cn
  • 支持 https://alibaba.github.io/fastjson2/json_schema_cn
  • 新增加支持二进制格式 JSONB https://alibaba.github.io/fastjson2/jsonb_format_cn

总得来说,提高了性能(拳打 Gson,脚踢 Jackson)和饱解决了饱受诟病的安全问题(因为 屡次爆出反序列化安全问题,在国内被戏称为 Bugjson)。

Fastjson2 确实一个款性能很高的 Json 库,API 也设计得比较简单、易用。本文将带你了解如何在 Spring 中使用 Fastjson2。

采用 多模块 的结构设计,对 Spring 等框架的支持现独立在 包中。

版本之后为了兼容 Spring 5.x / 6.x,将不同的版本独立出来了。

使用 Maven:

使用 Gradle:

如过你使用的是 Fastjson2 之前的版本,则可以直接使用以下依赖。

使用 Maven:

使用 Gradle:

Fastjson2 对于序列化和反序列化的行为进行了重新设计,所以 也会重新适配。

配置类 的可配置参数如下表:

参数 类型 描述 Charset 指定的字符集,默认 String 指定的日期格式,默认 Filter[] 配置序列化过滤器 JSONWriter.Feature[] 配置序列化的指定行为,更多配置请见:Features Filter[] 配置反序列化过滤器 JSONReader.Feature[] 配置反序列化的指定行为,更多配置请见:Features boolean 是否采用JSONB进行序列化和反序列化,默认false JSONB.SymbolTable JSONB 序列化和反序列化的符号表,只有使用 JSONB 时生效

可以使用 Fastjson2 中的 和 为 Spring MVC 构建的 Web 应用提供更好的性能体验。

使用 来替换 Spring MVC 默认的 以提高 、 和 注解的 JSON 序列化和反序列化速度。

的配置示例如下:

使用 来设置 Spring MVC 默认的视图模型解析器,以提高 JSON 序列化速度。

配置实例如下:

参考:Spring 中文文档的 Spring Web MVC 部分。

Fastjson2 同样也对 Spring WebSocket 提供了支持。可以使用 进行配置。

配置示例如下:

参考:Spring 中文文档 Spring WebSocket 部分 。

同样可以使用 Fastjson2 中的 或 为 Spring Data Redis 提供更好的性能体验。

使用 作为 的 来提升 JSON 序列化和反序列化速度。

配置示例如下:

通常使用 即可满足大部分场景,如果你想定义特定类型专用的 可以使用 来代替 ,配置和上面类似。

配置示例如下:

如果你准备使用 JSONB 作为对象序列/反序列化的方式并对序列化速度有较高的要求的话,可以对 jsonb 参数进行配置,该参数是 fastjson 版本中新增的支持,配置也很简单。

配置示例如下:

参考:Spring Data Redis 中文文档。

在Fastjson2中,同样可以使用 为 Spring Messaging 提供更好的性能体验。

使用 在 Spring Cloud Stream 或 Spring Messaging 中提升 Message 的序列化和反序列化速度。

配置示例如下:

如果你准备使用 JSONB 作为对象序列/反序列化的方式并对序列化速度有较高的要求的话,可以对 的 参数进行配置,该参数是 fastjson 版本中新增的支持,配置也很简单。

注意:JSONB 仅支持将 Message 的 Payload 序列化为 !

配置示例如下:

参考:Spring Messaging 中文文档。


Ref:

版权声明


相关文章:

  • linux-p什么意思2025-06-30 18:30:05
  • sql左联接2025-06-30 18:30:05
  • 深度优先遍历的算法2025-06-30 18:30:05
  • c语言指针数组与数组指针2025-06-30 18:30:05
  • coax接口是什么意思2025-06-30 18:30:05
  • 计算机系统的结构组成2025-06-30 18:30:05
  • sql如何编程2025-06-30 18:30:05
  • java注解的实现原理2025-06-30 18:30:05
  • linux fopen函数2025-06-30 18:30:05
  • php访问api2025-06-30 18:30:05