クラス 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 constructorResolver) 指定されたコンストラクターリゾルバーをこの評価コンテキストに追加します。voidaddIndexAccessor(IndexAccessor indexAccessor) 指定されたインデックスアクセサーをこの評価コンテキストに追加します。voidaddMethodResolver(MethodResolver methodResolver) 指定されたメソッドリゾルバーをこの評価コンテキストに追加します。voidaddPropertyAccessor(PropertyAccessor propertyAccessor) 指定されたプロパティアクセサーをこの評価コンテキストに追加します。voidapplyDelegatesTo(StandardEvaluationContext evaluationContext) このインスタンスの内部デリゲートを指定されたevaluationContextに適用します。Bean を検索するための構成されたBeanResolverを取得します (存在する場合)。この評価コンテキストで使用するコンストラクターリゾルバーのリストを取得します。この評価コンテキストで構成されているインデックスアクセサーのリストを取得します。この評価コンテキストで使用するメソッドリゾルバーのリストを取得します。数学演算用に構成されたOperatorOverloaderを取得します。この評価コンテキストで構成されているプロパティアクセサーのリストを取得します。修飾されていないプロパティ、メソッドなどに適用できる、構成されたデフォルトのルートコンテキストオブジェクトを返します。オブジェクトのペアを比較するために構成されたTypeComparatorを取得します。値変換用に設定されたTypeConverterを取得します。型を検索するために使用される構成済みの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 constructorResolver) 指定されたコンストラクターリゾルバーをこの評価コンテキストから削除します。booleanremoveIndexAccessor(IndexAccessor indexAccessor) 指定されたインデックスアクセサーをこの評価コンテキストから削除します。booleanremoveMethodResolver(MethodResolver methodResolver) 指定されたメソッドリゾルバーをこの評価コンテキストから削除します。booleanremovePropertyAccessor(PropertyAccessor propertyAccessor) 指定されたプロパティアクセサーをこの評価コンテキストから削除します。voidsetBeanResolver(BeanResolver beanResolver) Bean の検索に使用するBeanResolverを設定します (存在する場合)。voidsetConstructorResolvers(ListSE<ConstructorResolver> constructorResolvers) この評価コンテキストで使用するコンストラクターリゾルバーのリストを設定します。voidsetIndexAccessors(ListSE<IndexAccessor> indexAccessors) この評価コンテキストで使用するインデックスアクセサーのリストを設定します。voidsetMethodResolvers(ListSE<MethodResolver> methodResolvers) この評価コンテキストで使用するメソッドリゾルバーのリストを設定します。voidsetOperatorOverloader(OperatorOverloader operatorOverloader) 数学演算用にOperatorOverloaderを設定します。voidsetPropertyAccessors(ListSE<PropertyAccessor> propertyAccessors) この評価コンテキストで使用するプロパティアクセサーのリストを設定します。voidsetRootObject(ObjectSE rootObject) 修飾されていないプロパティ、メソッドなどを適用するデフォルトのルートコンテキストオブジェクトを指定します。voidsetRootObject(ObjectSE rootObject, TypeDescriptor typeDescriptor) 修飾されていないプロパティ、メソッドなどを適用するデフォルトのルートコンテキストオブジェクト (型記述子を含む) を指定します。voidsetTypeComparator(TypeComparator typeComparator) オブジェクトのペアを比較するためのTypeComparatorを設定します。voidsetTypeConverter(TypeConverter 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, isAssignmentEnabled
コンストラクターの詳細
StandardEvaluationContext
public StandardEvaluationContext()null ルートオブジェクトを使用してStandardEvaluationContextを作成します。StandardEvaluationContext
指定されたルートオブジェクトでStandardEvaluationContextを作成します。- パラメーター:
rootObject- 使用するルートオブジェクト- 関連事項:
メソッドの詳細
setRootObject
修飾されていないプロパティ、メソッドなどを解決するデフォルトのルートコンテキストオブジェクト (型記述子を含む) を指定します。- パラメーター:
rootObject- 使用するルートオブジェクトtypeDescriptor- 対応する型記述子
setRootObject
修飾されていないプロパティやメソッドなどを解決するデフォルトのルートコンテキストオブジェクトを指定します。- パラメーター:
rootObject- 使用するルートオブジェクト
getRootObject
修飾されていないプロパティ、メソッドなどを解決するために構成されたデフォルトのルートコンテキストオブジェクトを返します (TypedValue.NULLにすることができます)。- 次で指定:
- インターフェース
EvaluationContextのgetRootObject
setPropertyAccessors
この評価コンテキストで使用するプロパティアクセサーのリストを設定します。以前に構成されたプロパティアクセサーを置き換えます。
getPropertyAccessors
この評価コンテキストで構成されているプロパティアクセサーのリストを取得します。- 次で指定:
- インターフェース
EvaluationContextのgetPropertyAccessors
addPropertyAccessor
指定されたプロパティアクセサーをこの評価コンテキストに追加します。- パラメーター:
propertyAccessor- 追加するプロパティアクセサー- 関連事項:
removePropertyAccessor
指定されたプロパティアクセサーをこの評価コンテキストから削除します。- パラメーター:
propertyAccessor- 削除するプロパティアクセサー- 戻り値:
- プロパティアクセサーが削除された場合は
true、この評価コンテキストでプロパティアクセサーが構成されていなかった場合はfalse - 関連事項:
setIndexAccessors
この評価コンテキストで使用するインデックスアクセサーのリストを設定します。以前に構成されたインデックスアクセサーを置き換えます。
getIndexAccessors
この評価コンテキストで構成されているインデックスアクセサーのリストを取得します。- 次で指定:
- インターフェース
EvaluationContextのgetIndexAccessors - 導入:
- 6.2
- 関連事項:
addIndexAccessor
指定されたインデックスアクセサーをこの評価コンテキストに追加します。- パラメーター:
indexAccessor- 追加するインデックスアクセサー- 導入:
- 6.2
- 関連事項:
removeIndexAccessor
指定されたインデックスアクセサーをこの評価コンテキストから削除します。- パラメーター:
indexAccessor- 削除するインデックスアクセサー- 戻り値:
- インデックスアクセサーが削除された場合は
true、この評価コンテキストでインデックスアクセサーが構成されなかった場合、false - 導入:
- 6.2
- 関連事項:
setConstructorResolvers
この評価コンテキストで使用するコンストラクターリゾルバーのリストを設定します。以前に構成されたコンストラクターリゾルバーを置き換えます。
getConstructorResolvers
この評価コンテキストで使用するコンストラクターリゾルバーのリストを取得します。- 次で指定:
- インターフェース
EvaluationContextのgetConstructorResolvers
addConstructorResolver
指定されたコンストラクターリゾルバーをこの評価コンテキストに追加します。- パラメーター:
constructorResolver- 追加するコンストラクターリゾルバー- 関連事項:
removeConstructorResolver
指定されたコンストラクターリゾルバーをこの評価コンテキストから削除します。- パラメーター:
constructorResolver- 削除するコンストラクターリゾルバー- 戻り値:
- コンストラクターリゾルバーが削除された場合は
true、この評価コンテキストでコンストラクターリゾルバーが構成されていない場合はfalse - 関連事項:
setMethodResolvers
この評価コンテキストで使用するメソッドリゾルバーのリストを設定します。以前に構成されたメソッドリゾルバーを置き換えます。
getMethodResolvers
この評価コンテキストで使用するメソッドリゾルバーのリストを取得します。- 次で指定:
- インターフェース
EvaluationContextのgetMethodResolvers
addMethodResolver
指定されたメソッドリゾルバーをこの評価コンテキストに追加します。- パラメーター:
methodResolver- 追加するメソッドリゾルバー- 関連事項:
removeMethodResolver
指定されたメソッドリゾルバーをこの評価コンテキストから削除します。- パラメーター:
methodResolver- 削除するメソッドリゾルバー- 戻り値:
- メソッドリゾルバーが削除された場合は
true、この評価コンテキストでメソッドリゾルバーが構成されていなかった場合はfalse - 関連事項:
setBeanResolver
Bean の検索に使用するBeanResolverを設定します (存在する場合)。getBeanResolver
Bean を検索するための構成されたBeanResolverを取得します (存在する場合)。- 次で指定:
- インターフェース
EvaluationContextのgetBeanResolver
setTypeLocator
型の検索に使用するTypeLocatorを、短縮名または完全修飾名で設定します。デフォルトでは、
StandardTypeLocatorが使用されます。注意 :
StandardTypeLocatorで十分な場合でも、SpEL 式パーサーが確実にユーザー型を見つけられるようにするために、特定のClassLoaderSE を使用してStandardTypeLocatorを手動で構成する必要がある場合があります。- パラメーター:
typeLocator- 使用するTypeLocator- 関連事項:
getTypeLocator
型を検索するために使用される構成済みのTypeLocatorを、短縮名または完全修飾名で取得します。詳細については、
setTypeLocator(TypeLocator)を参照してください。- 次で指定:
- インターフェース
EvaluationContextのgetTypeLocator - 関連事項:
setTypeConverter
値変換用にTypeConverterを設定します。getTypeConverter
値変換用に設定されたTypeConverterを取得します。- 次で指定:
- インターフェース
EvaluationContextのgetTypeConverter
setTypeComparator
オブジェクトのペアを比較するためのTypeComparatorを設定します。getTypeComparator
オブジェクトのペアを比較するために構成されたTypeComparatorを取得します。- 次で指定:
- インターフェース
EvaluationContextのgetTypeComparator
setOperatorOverloader
数学演算用にOperatorOverloaderを設定します。getOperatorOverloader
数学演算用に構成されたOperatorOverloaderを取得します。- 次で指定:
- インターフェース
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