クラス SimpleEvaluationContext

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

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

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

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
関連事項: