かんがるーさんの日記

最近自分が興味をもったものを調べた時の手順等を書いています。今は Spring Boot をいじっています。

Spring Boot 2.4.x の Web アプリを 2.5.x へバージョンアップする ( 感想 )

記事一覧はこちらです。

  • Spring Boot 2.5 Release Notes には結構記述がありますが、アプリに直接影響が出る変更がなく今回もバージョンアップするだけで終わりました。

  • Gradle 7.x、Spock 2.x、Groovy 3.x へのバージョンアップは少し時間がかかるかもしれないと思っていましたが、ほとんど問題は発生しませんでした。

  • 今回のバージョンアップには関係ありませんが、今年の 9/1~9/3 に開催された Spring One で 2022年4Q にリリース予定の Spring Framework 6 + Spring Boot 3 から Jakarta EE 9 がベースラインになるとのアナウンスがありました(javax.*jakarta.* パッケージへ切り替えるのも Spring Boot 3 からになる模様)。IntelliJ IDEA は 2021年7月にリリースされた 2021.2 で javax.*jakarta.* パッケージへの移行を支援する「Automatic migration from Java EE to Jakarta EE」の機能がリリースされました。

    f:id:ksby:20210912105910p:plain:w450 f:id:ksby:20210912105948p:plain:w450

    「Run」ボタンをクリックすると javax.* パッケージが使用されている箇所を洗い出してくれます。

    f:id:ksby:20210912110616p:plain

    Spring Boot 3 にバージョンアップする時にこの機能を使うと思いますが、1年以上前にリリースされた機能を覚えていられるのかな。。。

    javax.*jakarta.* パッケージへの切替については Support for Jakarta EE 9 (annotations and interfaces in jakarta.* namespace) で議論されていますので、しばらくの間は要チェックでしょう。

    また、Unable to upgrade to latest Tomcat - Spring framework and RestEasy don't support Tomcat 10http://tomcat.apache.org/migration-10.html を見ると Tomcat 10 にバージョンアップするには jakarta.* パッケージへの変更が必須のようです。Embedded Tomcat ならば Spring Boot 3 になるまでは Tomcat 10 は使用されず問題にならないかもしれませんが、Tomcat 10 のサーバを別途構築して war ファイルを作成して deploy しなければならない場合には Spring Boot 3 になるまで deploy できないことに気づかないかもしれません。後者の環境で deploy したことがないので本当にそうなのかは分かりませんが、jakarta.* パッケージの利用有無は1年くらいは要注意でしょう。