Spring Boot 2.3 から 2.4 にアップグレードする場合、脆弱性の問題は発生しないはずです。実際に、2.4 にアップグレードすると、セキュリティとパフォーマンスの改善が期待できます。
ただし、アップグレードする際には、いくつかの互換性の問題に注意する必要があります。Spring Boot 2.4 では、いくつかの大きな変更や削除が導入されているため、いくつかのアプリケーションは、正常に動作するために適切な変更を加える必要がある場合があります。具体的には、次の点に注意する必要があります。
spring-boot-starter-web は、Tomcat 9 のサポートを追加しました。もしアプリケーションが古いバージョンの Tomcat に依存している場合、新しい Tomcat API をサポートするようにコードを更新する必要があるかもしれません。
Spring Boot 2.4 では、推奨されない機能がいくつか廃止されました。もしアプリケーションがこれらの機能を使用している場合、推奨される代替策を使うようにコードを更新する必要があります。
spring-boot-devtools の動作方法が変更され、アプリケーションの状態を維持するためのホットデプロイメントがサポートされるようになりました。もし spring-boot-devtools を使用している場合、これらの変更に対応するようにコードを更新する必要があるかもしれません。
Spring Boot 2.4 では、より強力なパスワード暗号化アルゴリズムやより厳密なデフォルトのセキュリティポリシーなど、いくつかのセキュリティ改善が導入されています。これらの変更はアプリケーションに影響を与える可能性があるため、コードを慎重に確認して、引き続き正常に動作することを確認する必要があります。
以上から、Spring Boot 2.3 から 2.4 にアップグレードすることは比較的簡単なプロセスであると言えますが、潜在的な変更に適応できるように、コードを慎重に確認する必要があります。アッ
Spring Boot 2.3 から 2.4 にアップグレードする際には、いくつかの潜在的な変更に注意する必要があります。以下にいくつかの例を挙げます。
Spring Boot 2.4 では、Java 8 以前のバージョンをサポートしなくなりました。もしアプリケーションが Java 8 以前で動作している場合、アップグレードする前に Java のバージョンをアップグレードする必要があります。
@SpringBootTest は、@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) のように、暗黙的にランダムポートを使用するように変更されました。もしアプリケーションが明示的にポート番号を指定している場合、コードを更新する必要があるかもしれません。
Spring Boot 2.4 では、デフォルトで src/main/resources にある application.properties や application.yml ファイルが自動的に読み込まれなくなりました。代わりに、src/main/resources のサブディレクトリに application.properties や application.yml ファイルを置くことができます。これにより、アプリケーションが読み込むプロパティファイルをより細かく設定できるようになりました。
Spring Boot 2.4 では、@AutoConfigureMockMvc を使用してモックの MVC テストを構成する場合、@MockBean で注入されたビーンが、アプリケーション本体で使用されているビーンを置き換えないようになりました。これは、より正確なモックテストを可能にするための変更ですが、以前のコードが影響を受ける可能性があるため、注意が必要です。
これらは一部の例ですが、Spring Boot 2.4 には他にも多くの変更が含まれています。アップグレードする際には、公式のリリースノートを確認し、アプリケーションに影響を与える可能性のある変更を特定する必要があります。
Spring Boot 2.3 から 2.4 にアップグレードする際には、いくつかの潜在的な変更に注意する必要があります。以下にいくつかの例を挙げます。
Spring Boot 2.4 では、Java 8 以前のバージョンをサポートしなくなりました。もしアプリケーションが Java 8 以前で動作している場合、アップグレードする前に Java のバージョンをアップグレードする必要があります。
@SpringBootTest は、@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) のように、暗黙的にランダムポートを使用するように変更されました。もしアプリケーションが明示的にポート番号を指定している場合、コードを更新する必要があるかもしれません。
Spring Boot 2.4 では、デフォルトで src/main/resources にある application.properties や application.yml ファイルが自動的に読み込まれなくなりました。代わりに、src/main/resources のサブディレクトリに application.properties や application.yml ファイルを置くことができます。これにより、アプリケーションが読み込むプロパティファイルをより細かく設定できるようになりました。
Spring Boot 2.4 では、@AutoConfigureMockMvc を使用してモックの MVC テストを構成する場合、@MockBean で注入されたビーンが、アプリケーション本体で使用されているビーンを置き換えないようになりました。これは、より正確なモックテストを可能にするための変更ですが、以前のコードが影響を受ける可能性があるため、注意が必要です。
これらは一部の例ですが、Spring Boot 2.4 には他にも多くの変更が含まれています。アップグレードする際には、公式のリリースノートを確認し、アプリケーションに影響を与える可能性のある変更を特定する必要があります。
Spring Boot 2.4 では、推奨されなくなった機能がいくつかあります。以下に全ての例を挙げます。
org.springframework.boot.context.embedded パッケージは、推奨されなくなりました。代わりに、org.springframework.boot.web.embedded パッケージを使用することが推奨されます。
spring-boot-starter-jetty および spring-boot-starter-undertow は、推奨されなくなりました。代わりに、spring-boot-starter-tomcat または spring-boot-starter-web を使用することが推奨されます。
spring-boot-starter-logging に含まれる logback-classic は、推奨されなくなりました。代わりに、logback-access と logback-core を直接使用することが推奨されます。
spring-webmvc モジュールは、推奨されなくなりました。代わりに、spring-web モジュールを使用することが推奨されます。
spring-boot-starter-security-oauth2-autoconfigure は、推奨されなくなりました。代わりに、spring-security-oauth2-client と spring-security-oauth2-resource-server を使用することが推奨されます。
spring-boot-devtools モジュールの LiveReload 機能は、推奨されなくなりました。代わりに、Spring Boot 2.4 からは、ブラウザの自動更新に対応するようになりました。
これらは Spring Boot 2.4 で推奨されなくなった機能の全てです。これらの機能を使用している場合は、アップグレードして推奨される代替機能を使用することが推奨されます。