クラス SimpleEvaluationContext

java.lang.ObjectSE
org.springframework.expression.spel.support.SimpleEvaluationContext
実装されたすべてのインターフェース:
EvaluationContext

public final class SimpleEvaluationContext extends ObjectSE implements EvaluationContext
基本的な SpEL 機能とカスタマイズオプションのサブセットに焦点を当てた EvaluationContext の基本的な実装で、単純な条件評価と特定のデータバインディングシナリオを対象としています。

多くの場合、SpEL 言語の全範囲は必須ではなく、意味のある制限が必要です。例には、データバインディング式、プロパティベースのフィルターなどが含まれます。そのために、SimpleEvaluationContext は SpEL 言語構文のサブセットのみをサポートするように調整されています。Java 型、コンストラクター、Bean 参照への参照を除外します。

SimpleEvaluationContext を作成するときは、SpEL 式でのプロパティアクセスに必要なサポートのレベルを選択する必要があります。

  • カスタム PropertyAccessor (通常、反射ベースではない)、DataBindingPropertyAccessor と組み合わせる可能性
  • 読み取り専用アクセスのデータバインディングプロパティ
  • 読み取りおよび書き込み用のデータバインディングプロパティ

便利なことに、forReadOnlyDataBinding()DataBindingPropertyAccessor を介してプロパティへの読み取りアクセスを可能にします。forReadWriteDataBinding() でも書き込みアクセスが必要な場合と同じです。または、forPropertyAccessors(org.springframework.expression.PropertyAccessor...) を使用してカスタムアクセサーを構成し、ビルダーを介してメソッド解決や型コンバーターをアクティブ化することもできます。

通常、SimpleEvaluationContext にはデフォルトのルートオブジェクトが設定されていません。代わりに、一度作成され、EvaluationContext とルートオブジェクトの両方を引数として使用して、事前にコンパイルされた Expression の getValue 呼び出しを通じて繰り返し使用されることを意図しています: Expression.getValue(EvaluationContext, Object)

EvaluationContext API で定義されている変数の設定と検索のサポートに加え、SimpleEvaluationContext は関数を変数として登録および検索することもサポートします。この評価コンテキストでは関数は変数と共通の名前空間を共有するため、関数名と変数名が重複しないように注意する必要があります。

パワーと柔軟性を高めるため、特に内部構成のシナリオでは、代わりに StandardEvaluationContext の使用を検討してください。

導入:
4.3.15
作成者:
Rossen Stoyanchev, Juergen Hoeller, Sam Brannen
関連事項: