| 失效链接处理 |
|
为什么 SpringBoot 一直坚持用 Jackson 作为默认序列化库 ?
相关截图:
![]() 主要内容:
先说结论:默认不等于唯一
Jackson 长期以来都是 Spring Boot 首选和默认的 JSON 库,而不是唯一能用的库。Spring Boot 3 默认使用 Jackson 2,并自动创建 ObjectMapper;到了 Spring Boot 4,默认版本已经升级为 Jackson 3,核心入口也变成了不可变的 JsonMapper。名字和部分 API 虽然变了,但 Spring 对 Jackson 的选择没有变。
这不是因为 Jackson 在每一项测试里都必须拿第一,而是因为它在功能、性能、扩展能力、兼容性和社区生态之间,做到了很难得的平衡。对于一个通用 Web 框架来说,“整体稳妥”往往比“某个指标最快”更重要。
一次请求是怎样变成 JSON 的
Spring MVC 并不是在 Controller 里偷偷调用 Jackson。真正负责转换的是 HTTP 消息转换器:它拿到 Controller 返回的对象,找到合适的 JSON 映射器,再把结果写入 HTTP 响应。
反过来也一样:前端提交 JSON 时,Jackson 会把请求体转换成 Java 对象,然后再交给 Controller。开发者只需要关心业务对象,不必重复处理 JSON 字符串。
只要项目引入 Web Starter,通常就会间接得到 JSON Starter 和 Jackson。Spring Boot 还会根据类路径自动配置映射器、模块和消息转换器,这也是我们几乎“零配置就能用”的原因。
|


苏公网安备 32061202001004号
