クラス StandardEvaluationContext
- 実装されたすべてのインターフェース:
EvaluationContext
- 既知の直属サブクラス
MethodBasedEvaluationContext
EvaluationContext
実装。 このコンテキストは、リフレクションに基づいてプロパティ、メソッド、フィールドを解決する、適用可能なすべての戦略の標準実装を使用します。ただし、SpEL 式パーサーが確実にユーザー型を見つけられるようにするには、特定の ClassLoader
SE を使用して StandardTypeLocator
を手動で構成する必要がある場合があることに注意してください。詳細については、setTypeLocator(TypeLocator)
を参照してください。
EvaluationContext
API で定義されている変数の設定と検索のサポートに加えて、StandardEvaluationContext
は関数の登録と検索のサポートも提供します。registerFunction(...)
メソッドは、関数を Method
SE または MethodHandle
SE として登録する便利な方法を提供します。ただし、関数は setVariable(String, Object)
または setVariables(Map)
を介して登録することもできます。この評価コンテキストでは関数は変数と名前空間を共有するため、関数名と変数名が重複しないように注意する必要があります。
データバインディングを目的とした、より単純なビルダースタイルのコンテキストバリアントの場合は、代わりに SimpleEvaluationContext
を使用することを検討してください。これにより、特定のユースケースで必要に応じていくつかの SpEL 機能をオプトインできるようになります。
- 導入:
- 3.0
- 作成者:
- Andy Clement, Juergen Hoeller, Sam Brannen, Stephane Nicoll
- 関連事項:
コンストラクターのサマリー
コンストラクターコンストラクター説明null ルートオブジェクトを使用してStandardEvaluationContext
を作成します。StandardEvaluationContext
(ObjectSE rootObject) 指定されたルートオブジェクトでStandardEvaluationContext
を作成します。メソッドのサマリー
修飾子と型メソッド説明void
addConstructorResolver
(ConstructorResolver resolver) void
addIndexAccessor
(IndexAccessor indexAccessor) 指定されたインデックスアクセサーをこの評価コンテキストに追加します。void
addMethodResolver
(MethodResolver resolver) void
addPropertyAccessor
(PropertyAccessor accessor) void
applyDelegatesTo
(StandardEvaluationContext evaluationContext) このインスタンスの内部デリゲートを指定されたevaluationContext
に適用します。名前で Bean を検索できる Bean リゾルバーを返します。コンストラクターを見つけるために順番に尋ねられるリゾルバーのリストを返します。この評価コンテキストで構成されているインデックスアクセサーのリストを取得します。メソッドを見つけるために順番に要求されるリゾルバーのリストを返します。標準の型のセット以外のものの間の数学演算をサポートする可能性のある演算子オーバーローダーを返します。プロパティの読み取り / 書き込みを順番に要求されるアクセサーのリストを返します。修飾されていないプロパティ、メソッドなどに対するデフォルトのルートコンテキストオブジェクトを返します。オブジェクトのペアが等しいかどうかを比較するための型コンパレータを返します。値をある型から別の型に変換(または強制)できる型コンバーターを返します。型を検索するために使用される構成済みのTypeLocator
を、短縮名または完全修飾名で取得します。lookupVariable
(StringSE name) この評価コンテキスト内で名前付き変数または関数を検索します。void
registerFunction
(StringSE name, MethodHandleSE methodHandle) 指定したMethodHandle
SE を SpEL 関数として登録します。void
registerFunction
(StringSE name, MethodSE method) 指定したMethod
SE を SpEL 関数として登録します。void
registerMethodFilter
(ClassSE<?> type, MethodFilter filter) 指定された型のメソッド解決中に呼び出されるMethodFilter
を登録します。boolean
removeConstructorResolver
(ConstructorResolver resolver) boolean
removeIndexAccessor
(IndexAccessor indexAccessor) 指定されたインデックスアクセサーをこの評価コンテキストから削除します。boolean
removeMethodResolver
(MethodResolver methodResolver) boolean
removePropertyAccessor
(PropertyAccessor accessor) void
setBeanResolver
(BeanResolver beanResolver) void
setConstructorResolvers
(ListSE<ConstructorResolver> constructorResolvers) void
setIndexAccessors
(ListSE<IndexAccessor> indexAccessors) この評価コンテキストで使用するインデックスアクセサーのリストを設定します。void
setMethodResolvers
(ListSE<MethodResolver> methodResolvers) void
setOperatorOverloader
(OperatorOverloader operatorOverloader) void
setPropertyAccessors
(ListSE<PropertyAccessor> propertyAccessors) void
setRootObject
(ObjectSE rootObject) void
setRootObject
(ObjectSE rootObject, TypeDescriptor typeDescriptor) void
setTypeComparator
(TypeComparator typeComparator) void
setTypeConverter
(TypeConverter typeConverter) void
setTypeLocator
(TypeLocator typeLocator) 型の検索に使用するTypeLocator
を、短縮名または完全修飾名で設定します。void
setVariable
(StringSE name, ObjectSE value) この評価コンテキストの名前付き変数を指定された値に設定します。void
setVariables
(MapSE<StringSE, ObjectSE> variables) この評価コンテキスト内の複数の名前付き変数を指定された値に設定します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.expression.EvaluationContext から継承されたメソッド
assignVariable, isAssignmentEnabled
コンストラクターの詳細
StandardEvaluationContext
public StandardEvaluationContext()null ルートオブジェクトを使用してStandardEvaluationContext
を作成します。StandardEvaluationContext
指定されたルートオブジェクトでStandardEvaluationContext
を作成します。- パラメーター:
rootObject
- 使用するルートオブジェクト- 関連事項:
メソッドの詳細
setRootObject
setRootObject
getRootObject
インターフェースからコピーされた説明:EvaluationContext
修飾されていないプロパティ、メソッドなどを解決するデフォルトのルートコンテキストオブジェクトを返します。これは、式を評価するときにオーバーライドできます。
- 次で指定:
- インターフェース
EvaluationContext
のgetRootObject
setPropertyAccessors
getPropertyAccessors
インターフェースからコピーされた説明:EvaluationContext
プロパティの読み取り / 書き込みを順番に要求されるアクセサーのリストを返します。デフォルトの実装では空のリストが返されます。
- 次で指定:
- インターフェース
EvaluationContext
のgetPropertyAccessors
addPropertyAccessor
removePropertyAccessor
setIndexAccessors
この評価コンテキストで使用するインデックスアクセサーのリストを設定します。以前に構成されたインデックスアクセサーを置き換えます。
getIndexAccessors
この評価コンテキストで構成されているインデックスアクセサーのリストを取得します。- 次で指定:
- インターフェース
EvaluationContext
のgetIndexAccessors
- 導入:
- 6.2
- 関連事項:
addIndexAccessor
指定されたインデックスアクセサーをこの評価コンテキストに追加します。- パラメーター:
indexAccessor
- 追加するインデックスアクセサー- 導入:
- 6.2
- 関連事項:
removeIndexAccessor
指定されたインデックスアクセサーをこの評価コンテキストから削除します。- パラメーター:
indexAccessor
- 削除するインデックスアクセサー- 戻り値:
- インデックスアクセサーが削除された場合は
true
、この評価コンテキストでインデックスアクセサーが構成されなかった場合、false
- 導入:
- 6.2
- 関連事項:
setConstructorResolvers
getConstructorResolvers
インターフェースからコピーされた説明:EvaluationContext
コンストラクターを見つけるために順番に尋ねられるリゾルバーのリストを返します。デフォルトの実装では空のリストが返されます。
- 次で指定:
- インターフェース
EvaluationContext
のgetConstructorResolvers
addConstructorResolver
removeConstructorResolver
setMethodResolvers
getMethodResolvers
インターフェースからコピーされた説明:EvaluationContext
メソッドを見つけるために順番に要求されるリゾルバーのリストを返します。デフォルトの実装では空のリストが返されます。
- 次で指定:
- インターフェース
EvaluationContext
のgetMethodResolvers
addMethodResolver
removeMethodResolver
setBeanResolver
getBeanResolver
インターフェースからコピーされた説明:EvaluationContext
名前で Bean を検索できる Bean リゾルバーを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetBeanResolver
setTypeLocator
型の検索に使用するTypeLocator
を、短縮名または完全修飾名で設定します。デフォルトでは、
StandardTypeLocator
が使用されます。注意 :
StandardTypeLocator
で十分な場合でも、SpEL 式パーサーが確実にユーザー型を見つけられるようにするために、特定のClassLoader
SE を使用してStandardTypeLocator
を手動で構成する必要がある場合があります。- パラメーター:
typeLocator
- 使用するTypeLocator
- 関連事項:
getTypeLocator
型を検索するために使用される構成済みのTypeLocator
を、短縮名または完全修飾名で取得します。詳細については、
setTypeLocator(TypeLocator)
を参照してください。- 次で指定:
- インターフェース
EvaluationContext
のgetTypeLocator
- 関連事項:
setTypeConverter
getTypeConverter
インターフェースからコピーされた説明:EvaluationContext
値をある型から別の型に変換(または強制)できる型コンバーターを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetTypeConverter
setTypeComparator
getTypeComparator
インターフェースからコピーされた説明:EvaluationContext
オブジェクトのペアが等しいかどうかを比較するための型コンパレータを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetTypeComparator
setOperatorOverloader
getOperatorOverloader
インターフェースからコピーされた説明:EvaluationContext
標準の型のセット以外のものの間の数学演算をサポートする可能性のある演算子オーバーローダーを返します。- 次で指定:
- インターフェース
EvaluationContext
のgetOperatorOverloader
setVariable
この評価コンテキストの名前付き変数を指定された値に設定します。指定された
name
がnull
の場合、無視されます。指定されたvalue
がnull
の場合、名前付き変数はこの評価コンテキストから削除されます。EvaluationContext.assignVariable(String,java.util.function.Supplier)
とは対照的に、このメソッドは、EvaluationContext
と直接対話する場合にのみプログラムで呼び出す必要があります。— たとえば、コンテキストの初期構成を提供します。この評価コンテキストでは、変数と関数が共通の名前空間を共有することに注意してください。詳細については、クラスレベルのドキュメントを参照してください。
- 次で指定:
- インターフェース
EvaluationContext
のsetVariable
- パラメーター:
name
- 設定する変数の名前value
- 変数に入れられる値- 関連事項:
setVariables
この評価コンテキスト内の複数の名前付き変数を指定された値に設定します。これは、
setVariable(String, Object)
の簡易版です。この評価コンテキストでは、変数と関数が共通の名前空間を共有することに注意してください。詳細については、クラスレベルのドキュメントを参照してください。
- パラメーター:
variables
- 設定する変数の名前と値- 関連事項:
registerFunction
指定したMethod
SE を SpEL 関数として登録します。この評価コンテキストでは、変数と関数が共通の名前空間を共有することに注意してください。詳細については、クラスレベルのドキュメントを参照してください。
- パラメーター:
name
- 関数の名前method
- 登録するMethod
- 関連事項:
registerFunction
指定したMethodHandle
SE を SpEL 関数として登録します。この評価コンテキストでは、変数と関数が共通の名前空間を共有することに注意してください。詳細については、クラスレベルのドキュメントを参照してください。
- パラメーター:
name
- 関数の名前methodHandle
- 登録するMethodHandle
SE- 導入:
- 6.1
- 関連事項:
lookupVariable
この評価コンテキスト内で名前付き変数または関数を検索します。この評価コンテキストでは、変数と関数が共通の名前空間を共有することに注意してください。詳細については、クラスレベルのドキュメントを参照してください。
- 次で指定:
- インターフェース
EvaluationContext
のlookupVariable
- パラメーター:
name
- 検索する変数または関数の名前- 戻り値:
- 変数または関数の値、見つからない場合は
null
registerMethodFilter
public void registerMethodFilter(ClassSE<?> type, MethodFilter filter) throws IllegalStateExceptionSE 指定された型のメソッド解決中に呼び出されるMethodFilter
を登録します。MethodFilter
はメソッドを削除したり、メソッドをソートしたりして、SpEL が一致を探す候補として SpEL で使用するようにします。- パラメーター:
type
- フィルターを呼び出す型filter
- 型のフィルターの登録を解除するMethodFilter
またはnull
- 例外:
IllegalStateExceptionSE
-ReflectiveMethodResolver
が使用されていない場合
applyDelegatesTo
このインスタンスの内部デリゲートを指定されたevaluationContext
に適用します。通常、デリゲートを再利用するために新しいコンテキストインスタンスが作成された直後に呼び出されます。ルートオブジェクトや登録された変数や関数は変更されません。- パラメーター:
evaluationContext
- 更新する評価コンテキスト- 導入:
- 6.1.1