クラス SimpleEvaluationContext
- 実装されたすべてのインターフェース:
EvaluationContext
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)
。
パワーと柔軟性を高めるため、特に内部構成のシナリオでは、代わりに StandardEvaluationContext
の使用を検討してください。
- 導入:
- 4.3.15
- 作成者:
- Rossen Stoyanchev, Juergen Hoeller
- 関連事項:
ネストされたクラスのサマリー
ネストされたクラスメソッドのサマリー
修飾子と型メソッド説明forPropertyAccessors
(PropertyAccessor... accessors) 指定されたPropertyAccessor
デリゲートのSimpleEvaluationContext
を作成します。通常は、ユースケースに固有のカスタムPropertyAccessor
(たとえばDataBindingPropertyAccessor
を介してパブリックプロパティに読み取り専用でアクセスするSimpleEvaluationContext
を作成します。DataBindingPropertyAccessor
を介してパブリックプロパティへの読み取り / 書き込みアクセス用のSimpleEvaluationContext
を作成します。SimpleEvaluationContext
は、Bean 参照の使用をサポートしていません。このコンテキストは型参照の使用をサポートしていないため、常に空のリストを返します。指定されたMethodResolver
デリゲートがある場合はそれを返します。StandardOperatorOverloader
のインスタンスを返します。指定されたPropertyAccessor
デリゲートがある場合はそれを返します。指定されたルートオブジェクトがあれば、それを返します。StandardTypeComparator
のインスタンスを返します。構成されたTypeConverter
。SimpleEvaluationContext
は型参照の使用をサポートしていません。lookupVariable
(StringSE name) この評価コンテキスト内の名前付き変数を検索します。void
setVariable
(StringSE name, ObjectSE value) この評価コンテキスト内の名前付き変数を指定された値に設定します。
メソッドの詳細
getRootObject
指定されたルートオブジェクトがあれば、それを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetRootObject
getPropertyAccessors
指定されたPropertyAccessor
デリゲートがある場合はそれを返します。getConstructorResolvers
このコンテキストは型参照の使用をサポートしていないため、常に空のリストを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetConstructorResolvers
getMethodResolvers
指定されたMethodResolver
デリゲートがある場合はそれを返します。getBeanResolver
SimpleEvaluationContext
は、Bean 参照の使用をサポートしていません。- 次で指定:
- インターフェース
EvaluationContext
のgetBeanResolver
- 戻り値:
- 常に
null
getTypeLocator
SimpleEvaluationContext
は型参照の使用をサポートしていません。- 次で指定:
- インターフェース
EvaluationContext
のgetTypeLocator
- 戻り値:
-
SpelMessage.TYPE_NOT_FOUND
でSpelEvaluationException
を発生させるTypeLocator
実装。
getTypeConverter
構成されたTypeConverter
。デフォルトでは、これは
StandardTypeConverter
です。getTypeComparator
StandardTypeComparator
のインスタンスを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetTypeComparator
getOperatorOverloader
StandardOperatorOverloader
のインスタンスを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetOperatorOverloader
setVariable
インターフェースからコピーされた説明:EvaluationContext
この評価コンテキスト内の名前付き変数を指定された値に設定します。- 次で指定:
- インターフェース
EvaluationContext
のsetVariable
- パラメーター:
name
- 設定する変数の名前value
- 変数に入れられる値
lookupVariable
インターフェースからコピーされた説明:EvaluationContext
この評価コンテキスト内の名前付き変数を検索します。- 次で指定:
- インターフェース
EvaluationContext
のlookupVariable
- パラメーター:
name
- 検索する変数- 戻り値:
- 変数の値。見つからない場合は
null
forPropertyAccessors
指定されたPropertyAccessor
デリゲートのSimpleEvaluationContext
を作成します。通常は、ユースケースに固有のカスタムPropertyAccessor
(カスタムデータ構造での属性解決など)です。プロパティの逆参照も必要な場合は、DataBindingPropertyAccessor
と組み合わせる可能性があります。- パラメーター:
accessors
- 使用するアクセサーデリゲート- 関連事項:
forReadOnlyDataBinding
DataBindingPropertyAccessor
を介してパブリックプロパティに読み取り専用でアクセスするSimpleEvaluationContext
を作成します。forReadWriteDataBinding
DataBindingPropertyAccessor
を介してパブリックプロパティへの読み取り / 書き込みアクセス用のSimpleEvaluationContext
を作成します。