SpringにおけるJackson 3サポートの紹介 ノート
RSS春季

SpringにおけるJackson 3サポートの紹介

Spring Framework は、Spring Boot 4 および関連プロジェクトにおいて、人気の JVM JSON ライブラリである Jackson の最新バージョンである Jackson 3 のサポートを導入します。この重要なアップデートは、Jackson 3.0.0 GA リリースに続き、過去の Jackson 統合の改善に基づいています。Spring チームと Jackson チームは、Jackson 3 のリリース候補段階で緊密に協力し、いくつかの改善が行われました。これには、Jackson 2 と 3 の共存の許可、JDK 17 のベースライン、JSON ビューのデフォルトの整合性、および null 安全性とノンブロッキングパーサー機能の強化が含まれます。Spring Boot 4 は両方の Jackson バージョンの依存関係管理を提供しますが、Jackson 3 のみを自動構成するため、これがデフォルトになります。アプリケーションの移行は Jackson 3 の採用が推奨されますが、手動構成で Jackson 2 を一時的に使用することも可能です。主な移行手順には、パッケージ名を `com.fasterxml.jackson` から `tools.jackson` に更新すること、および Jackson 3 の新しいデフォルト設定(プロパティのアルファベット順ソートや日付のシリアライズ形式など)に適応することが含まれます。Jackson 3 で導入されたイミュータブルな `JsonMapper` は、Jackson 2 のミュータブルな `ObjectMapper` に取って代わり、`JsonMapper.Builder` を使用した構成を簡素化します。非推奨となった `MappingJackson2HttpMessageConverter` は、より高機能な `JacksonJsonHttpMessageConverter` に置き換えられ、シリアライゼーションヒントを直接使用するため、`MappingJacksonValue` のようなラッパーが不要になります。Spring Security 7.0 も Jackson 3 をサポートし、デフォルトのグローバルタイピングを無効にし、`PolymorphicTypeValidator` を導入することで安全性を強化します。Spring Data 4.0 は、そのモジュール全体で完全な Jackson 3 サポートをもたらしますが、Spring Data REST や Spring HATEOAS のような一部のモジュールでは、Jackson 3 への完全な移行が必要になります。