クラス StandardEvaluationContext
- 実装されているすべてのインターフェース:
EvaluationContext
- 既知の直属サブクラス
MethodBasedEvaluationContext
EvaluationContext 実装。 このコンテキストは、リフレクションに基づいてプロパティ、メソッド、フィールドを解決する、適用可能なすべての戦略の標準実装を使用します。ただし、SpEL 式パーサーが確実にユーザー型を見つけられるようにするには、特定の ClassLoaderSE を使用して StandardTypeLocator を手動で構成する必要がある場合があることに注意してください。詳細については、setTypeLocator(TypeLocator) を参照してください。
EvaluationContext API で定義されている変数の設定と検索のサポートに加えて、StandardEvaluationContext は関数の登録と検索のサポートも提供します。registerFunction(...) メソッドは、関数を MethodSE または MethodHandleSE として登録する便利な方法を提供します。ただし、関数は setVariable(String, Object) または setVariables(Map) を介して登録することもできます。この評価コンテキストでは関数は変数と名前空間を共有するため、関数名と変数名が重複しないように注意する必要があります。
データバインディングを目的とした、より単純なビルダースタイルのコンテキストバリアントの場合は、代わりに SimpleEvaluationContext を使用することを検討してください。これにより、特定のユースケースで必要に応じていくつかの SpEL 機能をオプトインできるようになります。
- 導入:
- 3.0
- 作成者:
- Andy Clement, Juergen Hoeller, Sam Brannen, Stephane Nicoll
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明null ルートオブジェクトを使用してStandardEvaluationContextを作成します。StandardEvaluationContext(ObjectSE rootObject) 指定されたルートオブジェクトでStandardEvaluationContextを作成します。メソッドのサマリー
修飾子と型メソッド説明voidaddConstructorResolver(ConstructorResolver resolver) voidaddMethodResolver(MethodResolver resolver) voidaddPropertyAccessor(PropertyAccessor accessor) voidapplyDelegatesTo(StandardEvaluationContext evaluationContext) このインスタンスの内部デリゲートを指定されたevaluationContextに適用します。名前で Bean を検索できる Bean リゾルバーを返します。コンストラクターを見つけるために順番に尋ねられるリゾルバーのリストを返します。メソッドを見つけるために順番に要求されるリゾルバーのリストを返します。標準の型のセット以外のものの間の数学演算をサポートする可能性のある演算子オーバーローダーを返します。プロパティの読み取り / 書き込みを順番に要求されるアクセサーのリストを返します。修飾されていないプロパティ / メソッド / その他を解決する必要があるデフォルトのルートコンテキストオブジェクトを返します。オブジェクトのペアが等しいかどうかを比較するための型コンパレータを返します。値をある型から別の型に変換(または強制)できる型コンバーターを返します。型を検索するために使用される構成済みのTypeLocatorを、短縮名または完全修飾名で取得します。lookupVariable(StringSE name) この評価コンテキスト内で名前付き変数または関数を検索します。voidregisterFunction(StringSE name, MethodHandleSE methodHandle) 指定したMethodHandleSE を SpEL 関数として登録します。voidregisterFunction(StringSE name, MethodSE method) 指定したMethodSE を SpEL 関数として登録します。voidregisterMethodFilter(ClassSE<?> type, MethodFilter filter) 指定された型のメソッド解決中に呼び出されるMethodFilterを登録します。booleanremoveConstructorResolver(ConstructorResolver resolver) booleanremoveMethodResolver(MethodResolver methodResolver) booleanremovePropertyAccessor(PropertyAccessor accessor) voidsetBeanResolver(BeanResolver beanResolver) voidsetConstructorResolvers(ListSE<ConstructorResolver> constructorResolvers) voidsetMethodResolvers(ListSE<MethodResolver> methodResolvers) voidsetOperatorOverloader(OperatorOverloader operatorOverloader) voidsetPropertyAccessors(ListSE<PropertyAccessor> propertyAccessors) voidsetRootObject(ObjectSE rootObject) voidsetRootObject(ObjectSE rootObject, TypeDescriptor typeDescriptor) voidsetTypeComparator(TypeComparator typeComparator) voidsetTypeConverter(TypeConverter typeConverter) voidsetTypeLocator(TypeLocator typeLocator) 型の検索に使用するTypeLocatorを、短縮名または完全修飾名で設定します。voidsetVariable(StringSE name, ObjectSE value) この評価コンテキストの名前付き変数を指定された値に設定します。voidsetVariables(MapSE<StringSE, ObjectSE> variables) この評価コンテキスト内の複数の名前付き変数を指定された値に設定します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.expression.EvaluationContext から継承されたメソッド
assignVariable
コンストラクターの詳細
StandardEvaluationContext
public StandardEvaluationContext()null ルートオブジェクトを使用してStandardEvaluationContextを作成します。StandardEvaluationContext
指定されたルートオブジェクトでStandardEvaluationContextを作成します。- パラメーター:
rootObject- 使用するルートオブジェクト- 関連事項:
メソッドの詳細
setRootObject
setRootObject
getRootObject
インターフェースからコピーされた説明:EvaluationContext修飾されていないプロパティ / メソッド / その他を解決する必要があるデフォルトのルートコンテキストオブジェクトを返します。これは、式を評価するときにオーバーライドできます。- 次で指定:
- インターフェース
EvaluationContextのgetRootObject
setPropertyAccessors
getPropertyAccessors
インターフェースからコピーされた説明:EvaluationContextプロパティの読み取り / 書き込みを順番に要求されるアクセサーのリストを返します。- 次で指定:
- インターフェース
EvaluationContextのgetPropertyAccessors
addPropertyAccessor
removePropertyAccessor
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 式パーサーが確実にユーザー型を見つけられるようにするために、特定のClassLoaderSE を使用して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
指定したMethodSE を SpEL 関数として登録します。この評価コンテキストでは、変数と関数が共通の名前空間を共有することに注意してください。詳細については、クラスレベルのドキュメントを参照してください。
- パラメーター:
name- 関数の名前method- 登録するMethod- 関連事項:
registerFunction
指定したMethodHandleSE を SpEL 関数として登録します。この評価コンテキストでは、変数と関数が共通の名前空間を共有することに注意してください。詳細については、クラスレベルのドキュメントを参照してください。
- パラメーター:
name- 関数の名前methodHandle- 登録するMethodHandleSE- 導入:
- 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