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