7月12日、SpringチームはSpring Framework 6.2.0-M5を発表した。本リリースでは、前回のM4リリース以来、多くの機能が追加された。
@RegisterReflection
開発者がリフレクションヒントを登録する際の体験が大幅に向上した。@RegisterReflection
を導入することで、任意のデータ型に対して簡単にヒントを登録できるようになり、@ReflectionScan
を使用することで、Spring Beanだけでなく任意のクラスに対するリフレクションヒントのスキャンを選択的に行うことが可能になった。
Webとメッセージング
Jettyチームとの協力により、Jettyの統合が直接Jetty APIのコア上に構築されるようになり、Servlet実装をバイパスするようになった。また、単一のモデルとビュー(例えば、全ページ)ではなく、複数のビュー(フラグメント)のレンダリングをサポートする機能が追加された。htmxやhotwireを使用している場合は、ぜひ試してみてほしい。また、GenericHttpMessageConverter
の欠点を解消するために、SmartHttpMessageConverter
が導入された。
テスティング
MockMvc用のAssertJ統合が引き続き進化している。このマイルストーンでは、マルチパートおよび非同期サポート、例外に対するより良いアサーション、デバッグ、およびドキュメントが追加された。@TestBean
で使用されるファクトリーメソッドは、他のクラスのメソッドを完全修飾形式で指定できるようになった。
6.2の新機能
Spring Framework 6.2では、以下の新機能が追加されている。
コアコンテナ
- 寛容なロッキング機能(詳細は23501を参照)
- シングルトン利用可能性のコールバック(詳細は21362を参照)
- シングルトン事前インスタンス化前のBeanファクトリ初期化コールバック(詳細は32836を参照)
- ライフサイクルフェーズとデフォルトタイムアウトの改訂(詳細は32152を参照)
- 特定のシャットダウンフェーズのための個別タイムアウト(詳細は32985を参照)
- ローカルルートディレクトリとjarキャッシングによる高速コンポーネントスキャン(詳細は21190を参照)
- @Bean(bootstrap=BACKGROUND)を使用した特定のBeanのバックグラウンド初期化(詳細は13410および19487を参照)
- パラメータ名(または@Qualifier値)がBean名と一致する場合の高速ショートカットオートワイヤリング(詳細は28122および17677を参照)
- ネスト/境界/解決不能な型変数の一貫したジェネリック型マッチング(詳細は30079、22902および20727を参照)
- @Primaryの補完としての@Fallbackを使用したフォールバックBean定義(詳細は26241を参照)
- defaultCandidate=falseフラグに基づく修飾子強制を伴うBean定義(詳細は26528を参照)
- プロパティプレースホルダーでのプレフィックスとセパレーターのエスケープサポート(詳細は9628を参照)
- TaskSchedulerバリアント間での一貫したTaskDecoratorサポート(詳細は23755を参照)
- TaskSchedulerバリアント間での一貫したErrorHandlerサポート(詳細は32460を参照)
- TaskおよびScheduledTaskのための新しい実行メタデータ(詳細は24560を参照)
AOT(Ahead of Time)
- @ReflectiveScanを使用して任意の型にリフレクションヒントを追加するための@Reflectiveのサポート(詳細は33132を参照)
- @RegisterReflectionを使用した装飾的なリフレクションヒントの提供(詳細は29194を参照)
- 既存のファイルがある場合のファイル登録を制御するGeneratedFiles(詳細は31331を参照)
- AOTでアプリケーションを処理する際の失敗時のコンテキスト情報の提供(詳細は32777を参照)
Spring Expression Language (SpEL)
- SpELのプロパティナビゲーションとインデックスサポートの完全な改訂
- 文字列およびオブジェクトへのインデックスサポートの公式ドキュメント
- カスタム構造へのインデックス付けをサポートする新しいIndexAccessorおよびCompilableIndexAccessor SPI、およびそれらのSPIの組み込みReflectiveIndexAccessor実装(詳細は関連ドキュメントを参照)
- 配列、コレクション、文字列、マップ、オブジェクト、およびカスタム構造への安全なナビゲーションサポート(詳細は関連ドキュメントを参照)
- varargsを使用するコンストラクタおよびメソッド呼び出しのコンパイルサポートの向上、および配列およびリストへのインデックス付けを行う式のサポートの向上
- 可能な場合には、公開インターフェースまたは公開スーパークラスを介してメソッドを呼び出すようにSpEL式のコンパイル時にサポート
- SpELコンパイラによって生成されたクラス名は、org.springframework.expression.spel.generated.CompiledExpression#####という形式になり、#####は0パッドされたカウンタ
データアクセスとトランザクション
- @EnableTransactionManagementでのrollbackOn属性を含む、デフォルトのロールバックルールの設定(詳細は23473を参照)
- デフォルトのトランザクションマネージャ選択のためのヒントとしてのタイプレベルの@Qualifierアノテーション(詳細は24291を参照)
- TransactionSynchronizationでのセーブポイントコールバックのサポート(詳細は30509を参照)
- JPA 3.2の初期サポート(詳細は31157を参照)
- 引用されたSQL識別子のためのバックティックのサポート(詳細は31944および32285を参照)
- EmbeddedDatabaseBuilderでの接続URLの設定(詳細は21160を参照)
Webアプリケーション
- RFC-7807応答のインターセプション(詳細は31822を参照)
- 新しいSmartHttpMessageConverter契約(詳細は33118を参照)
- Jacksonを使用したYAMLのWebサポート(詳細は32345を参照)
- webjars-locator-liteを使用した効率的なwebjarsバージョン解決(詳細は27619を参照)
- ルータ関数のためのリクエスト述語実行の最適化(詳細は32245を参照)
- UriComponentsBuilderなどのための新しいURLパーサ実装(詳細は32513を参照)
- ResponseEntityExceptionHandlerでのコンテンツネゴシエーションおよびビューのレンダリングサポート(詳細は31936およびリファレンスドキュメントを参照)
- FormHttpMessageConverterが単一値マップをサポート(詳細は32826を参照)
- RestClientでのリクエスト属性サポート(詳細は32027を参照)
- Protobuf 4.xのサポート(詳細は33011を参照)
- リアクティブサーバのためのパーティションクッキーサポート(詳細は31454およびCHIPSの詳細を参照)
- HTTPリクエストヘッダーから@ModelAttributeコントローラメソッド引数へのデータバインディングサポート(詳細は32676を参照)
メッセージングアプリケーション
- JMS DefaultMessageListenerContainerのためのファーストクラスの仮想スレッドサポート(詳細は32252を参照)
- 改訂されたidleReceivesPerTaskLimitセマンティクスに基づいて、デフォルトのエグゼキュータを使用してJMS DefaultMessageListenerContainerがスケールアップおよびスケールダウン(詳細は32260を参照)
テスティング
- @TestBean、@MockitoBean、および@MockitoSpyBeanを通じてテスト内でのBeanのオーバーライドのためのファーストクラスのメカニズム(関連ドキュメントを参照)
- テストのApplicationContext内から動的プロパティを登録可能(関連ドキュメントを参照)
- DynamicPropertyRegistryはテストのApplicationContextでシングルトンBeanとして登録され、@Configurationクラスおよび@Beanメソッドに注入可能
- @Beanメソッドに適用されるオプションである@DynamicPropertySourceが導入され、対応するBeanが積極的に初期化されることを示す
- SpringのServlet APIモックでのServlet 6.1サポート(Servlet 6.0互換性を維持しながら)(詳細は31159を参照)
- MockMvc用のAssertJサポート(詳細は21178を参照)
- MockMvc用のHtmlUnit 3.x/4.xサポート(詳細は30392を参照)
- JSONPathサポートの向上(詳細は31651および31653を参照)
- WebMvc.fnのテスティングサポート(詳細は30477を参照)
詳細はSpring Framework 6.2.0-M5 Available Nowをご参照いただきたい。