Spring 式言語 (SpEL)

Spring 式言語 (略して "SpEL" ) は、実行時のオブジェクトグラフのクエリと操作をサポートする強力な式言語です。言語構文は Jakarta Expression Language (英語) に似ていますが、追加機能、特にメソッド呼び出しと基本的な文字列テンプレート機能が提供されます。

他にもいくつかの Java 式言語(OGNL、MVEL、JBoss EL など)がありますが、Spring 式言語は、Spring コミュニティに、サポートされているすべての製品で使用できる単一の十分にサポートされた式言語を提供するために作成されました Spring ポートフォリオ。その言語機能は、Pleiades All in One (JDK, STS, Lombok 付属) Eclipse 用 Spring Tools (英語) 内のコード補完サポートのツール要件を含む、Spring ポートフォリオのプロジェクトの要件によって決まります。つまり、SpEL はテクノロジーに依存しない API に基づいており、必要に応じて他の式言語の実装を統合できます。

SpEL は Spring ポートフォリオ内の式評価の基盤として機能しますが、Spring に直接結び付けられておらず、単独で使用できます。自己完結型であるために、この章の例の多くは SpEL を独立した表現言語であるかのように使用しています。これには、パーサーなどのいくつかのブートストラップインフラストラクチャクラスを作成する必要があります。ほとんどの Spring ユーザーは、このインフラストラクチャを扱う必要はなく、代わりに評価用の式文字列のみを作成できます。この典型的な使用例は、Bean 定義を定義するための式のサポートに示すように、XML またはアノテーションベースの Bean 定義の作成への SpEL の統合です。

この章では、式言語、API、言語構文の機能について説明します。いくつかの場所では、Inventor および Society クラスが式評価のターゲットオブジェクトとして使用されます。これらのクラス宣言と設定するために使用されるデータは、この章の最後にリストされています。

式言語は、次の機能をサポートしています。

  • リテラル式

  • プロパティ、配列、リスト、マップへのアクセス

  • インラインリスト

  • インラインマップ

  • 配列構成

  • 比較演算子

  • 正規表現

  • 論理演算子

  • 文字列演算子

  • 数学演算子

  • 代入

  • 型式

  • メソッド呼び出し

  • コンストラクターの呼び出し

  • 変数

  • ユーザー定義関数

  • Bean 参照

  • 三項、エルビス、セーフナビゲーション演算子

  • コレクションの射影

  • コレクションの選択

  • テンプレート式