Spring Boot 2.x → 3.x / Java 21 移行完全技術ガイド——金融系システムの本番適用に向けた詳細手順と落とし穴
📅 2025年4月24日⏱ 読了約14分✍ DataOne Tech 編集部
Spring Boot 2.7のEOL(End of Life)は2023年11月に到達した。セキュリティパッチを受けられない状態でエンタープライズシステムを稼働させることは、金融庁・ISMAP等の規制要件に照らして受け入れられないリスクだ。しかしSpring Boot 2.x→3.xは「バージョンアップ」ではなく「移行」だ。本稿では、DataOneが複数の金融系Java案件で実施した移行プロジェクトの詳細技術知見を公開する。
移行の前提条件:Java 17以上が必須
Spring Boot 3.xはJava 17以上を要求する(LTS版推奨:Java 17・21)。Java 11からJava 17への移行も並行して実施する必要があり、これが移行工数を増大させる要因の一つだ。
推奨移行パス:
1. Java 11 + Spring Boot 2.5.x → Java 11 + Spring Boot 2.7.x(まず2.7に上げて非推奨APIを全てなくす)
2. Java 11 + Spring Boot 2.7.x → Java 17 + Spring Boot 2.7.x(JVMのみ更新)
3. Java 17 + Spring Boot 2.7.x → Java 17 + Spring Boot 3.x(フレームワーク移行)
4. Java 17 + Spring Boot 3.x → Java 21 + Spring Boot 3.2+(Virtual Threads活用) 一気に飛ばすと問題の切り分けが困難になる。段階的に実施すること。
破壊的変更1:javax.* → jakarta.* 名前空間(最大の工数)
Java EE APIがjakarta.* に移行したことに伴い、全てのimport文の更新が必要だ。IntelliJ IDEA / Eclipse の「Replace in Files」で機械的に置換できるが、依存ライブラリ側の対応確認が最も重要だ。