クラス 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 constructorResolver) Add the supplied constructor resolver to this evaluation context.void
addIndexAccessor
(IndexAccessor indexAccessor) 指定されたインデックスアクセサーをこの評価コンテキストに追加します。void
addMethodResolver
(MethodResolver methodResolver) Add the supplied method resolver to this evaluation context.void
addPropertyAccessor
(PropertyAccessor propertyAccessor) Add the supplied property accessor to this evaluation context.void
applyDelegatesTo
(StandardEvaluationContext evaluationContext) このインスタンスの内部デリゲートを指定されたevaluationContext
に適用します。Get the configuredBeanResolver
for looking up beans, if any.Get the list of constructor resolvers to use in this evaluation context.この評価コンテキストで構成されているインデックスアクセサーのリストを取得します。Get the list of method resolvers to use in this evaluation context.Get the configuredOperatorOverloader
for mathematical operations.Get the list of property accessors configured in this evaluation context.Return the configured default root context object against which unqualified properties, methods, etc.オブジェクトのペアを比較するために構成されたTypeComparator
を取得します。Get the configuredTypeConverter
for value conversion.型を検索するために使用される構成済みの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 constructorResolver) Remove the supplied constructor resolver from this evaluation context.boolean
removeIndexAccessor
(IndexAccessor indexAccessor) 指定されたインデックスアクセサーをこの評価コンテキストから削除します。boolean
removeMethodResolver
(MethodResolver methodResolver) Remove the supplied method resolver from this evaluation context.boolean
removePropertyAccessor
(PropertyAccessor propertyAccessor) Remove the supplied property accessor from this evaluation context.void
setBeanResolver
(BeanResolver beanResolver) Set theBeanResolver
to use for looking up beans, if any.void
setConstructorResolvers
(ListSE<ConstructorResolver> constructorResolvers) Set the list of constructor resolvers to use in this evaluation context.void
setIndexAccessors
(ListSE<IndexAccessor> indexAccessors) この評価コンテキストで使用するインデックスアクセサーのリストを設定します。void
setMethodResolvers
(ListSE<MethodResolver> methodResolvers) Set the list of method resolvers to use in this evaluation context.void
setOperatorOverloader
(OperatorOverloader operatorOverloader) Set theOperatorOverloader
for mathematical operations.void
setPropertyAccessors
(ListSE<PropertyAccessor> propertyAccessors) Set the list of property accessors to use in this evaluation context.void
setRootObject
(ObjectSE rootObject) Specify the default root context object against which unqualified properties, methods, etc.void
setRootObject
(ObjectSE rootObject, TypeDescriptor typeDescriptor) 修飾されていないプロパティ、メソッドなどを適用するデフォルトのルートコンテキストオブジェクト (型記述子を含む) を指定します。void
setTypeComparator
(TypeComparator typeComparator) Set theTypeComparator
for comparing pairs of objects.void
setTypeConverter
(TypeConverter typeConverter) Set theTypeConverter
for value conversion.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
Specify the default root context object (including a type descriptor) against which unqualified properties, methods, etc. should be resolved.- パラメーター:
rootObject
- 使用するルートオブジェクトtypeDescriptor
- a corresponding type descriptor
setRootObject
Specify the default root context object against which unqualified properties, methods, etc. should be resolved.- パラメーター:
rootObject
- 使用するルートオブジェクト
getRootObject
Return the configured default root context object against which unqualified properties, methods, etc. should be resolved (can beTypedValue.NULL
).- 次で指定:
- インターフェース
EvaluationContext
のgetRootObject
setPropertyAccessors
Set the list of property accessors to use in this evaluation context.Replaces any previously configured property accessors.
getPropertyAccessors
Get the list of property accessors configured in this evaluation context.- 次で指定:
- インターフェース
EvaluationContext
のgetPropertyAccessors
addPropertyAccessor
Add the supplied property accessor to this evaluation context.- パラメーター:
propertyAccessor
- the property accessor to add- 関連事項:
removePropertyAccessor
Remove the supplied property accessor from this evaluation context.- パラメーター:
propertyAccessor
- the property accessor to remove- 戻り値:
true
if the property accessor was removed,false
if the property accessor was not configured in this evaluation context- 関連事項:
setIndexAccessors
この評価コンテキストで使用するインデックスアクセサーのリストを設定します。以前に構成されたインデックスアクセサーを置き換えます。
getIndexAccessors
この評価コンテキストで構成されているインデックスアクセサーのリストを取得します。- 次で指定:
- インターフェース
EvaluationContext
のgetIndexAccessors
- 導入:
- 6.2
- 関連事項:
addIndexAccessor
指定されたインデックスアクセサーをこの評価コンテキストに追加します。- パラメーター:
indexAccessor
- 追加するインデックスアクセサー- 導入:
- 6.2
- 関連事項:
removeIndexAccessor
指定されたインデックスアクセサーをこの評価コンテキストから削除します。- パラメーター:
indexAccessor
- 削除するインデックスアクセサー- 戻り値:
- インデックスアクセサーが削除された場合は
true
、この評価コンテキストでインデックスアクセサーが構成されなかった場合、false
- 導入:
- 6.2
- 関連事項:
setConstructorResolvers
Set the list of constructor resolvers to use in this evaluation context.Replaces any previously configured constructor resolvers.
getConstructorResolvers
Get the list of constructor resolvers to use in this evaluation context.- 次で指定:
- インターフェース
EvaluationContext
のgetConstructorResolvers
addConstructorResolver
Add the supplied constructor resolver to this evaluation context.- パラメーター:
constructorResolver
- the constructor resolver to add- 関連事項:
removeConstructorResolver
Remove the supplied constructor resolver from this evaluation context.- パラメーター:
constructorResolver
- the constructor resolver to remove- 戻り値:
true
if the constructor resolver was removed,false
if the constructor resolver was not configured in this evaluation context- 関連事項:
setMethodResolvers
Set the list of method resolvers to use in this evaluation context.Replaces any previously configured method resolvers.
getMethodResolvers
Get the list of method resolvers to use in this evaluation context.- 次で指定:
- インターフェース
EvaluationContext
のgetMethodResolvers
addMethodResolver
Add the supplied method resolver to this evaluation context.- パラメーター:
methodResolver
- the method resolver to add- 関連事項:
removeMethodResolver
Remove the supplied method resolver from this evaluation context.- パラメーター:
methodResolver
- the method resolver to remove- 戻り値:
true
if the method resolver was removed,false
if the method resolver was not configured in this evaluation context- 関連事項:
setBeanResolver
Set theBeanResolver
to use for looking up beans, if any.getBeanResolver
Get the configuredBeanResolver
for looking up beans, if any.- 次で指定:
- インターフェース
EvaluationContext
のgetBeanResolver
setTypeLocator
型の検索に使用するTypeLocator
を、短縮名または完全修飾名で設定します。デフォルトでは、
StandardTypeLocator
が使用されます。注意 :
StandardTypeLocator
で十分な場合でも、SpEL 式パーサーが確実にユーザー型を見つけられるようにするために、特定のClassLoader
SE を使用してStandardTypeLocator
を手動で構成する必要がある場合があります。- パラメーター:
typeLocator
- 使用するTypeLocator
- 関連事項:
getTypeLocator
型を検索するために使用される構成済みのTypeLocator
を、短縮名または完全修飾名で取得します。詳細については、
setTypeLocator(TypeLocator)
を参照してください。- 次で指定:
- インターフェース
EvaluationContext
のgetTypeLocator
- 関連事項:
setTypeConverter
Set theTypeConverter
for value conversion.getTypeConverter
Get the configuredTypeConverter
for value conversion.- 次で指定:
- インターフェース
EvaluationContext
のgetTypeConverter
setTypeComparator
Set theTypeComparator
for comparing pairs of objects.getTypeComparator
オブジェクトのペアを比較するために構成されたTypeComparator
を取得します。- 次で指定:
- インターフェース
EvaluationContext
のgetTypeComparator
setOperatorOverloader
Set theOperatorOverloader
for mathematical operations.getOperatorOverloader
Get the configuredOperatorOverloader
for mathematical operations.- 次で指定:
- インターフェース
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