Class SpelParserConfiguration
Rather than using one of the numerous constructors in this class, it is
strongly recommended that you use the builder API to
configure and create a SpelParserConfiguration instance, since the
builder only requires configuration of the properties that need to deviate from
their sensible defaults — or use withDefaults() if none of those
defaults need to be overridden. Note that the constructors in this class are
planned to be deprecated in favor of the builder as of Spring Framework 7.1.
- Since:
- 3.0
- Author:
- Juergen Hoeller, Phillip Webb, Andy Clement, Sam Brannen
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classFluent builder API forSpelParserConfiguration. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDefault maximum number of bits permitted in the result of aBigDecimalorBigIntegerpower operation within a SpEL expression: 1000000.static final intDefault maximum length permitted for a SpEL expression: 10000.static final intDefault maximum number of operations permitted during SpEL expression evaluation: 10000.static final StringSystem property to configure the default compiler mode for SpEL expression parsers: "spring.expression.compiler.mode".static final StringSystem property to configure the default maximum number of bits permitted in the result of aBigDecimalorBigIntegerpower operation within a SpEL expression: "spring.expression.maxBigPowerBits".static final StringSystem property to configure the default maximum number of operations permitted during SpEL expression evaluation: "spring.expression.maxOperations". -
Constructor Summary
ConstructorsConstructorDescriptionCreate a newSpelParserConfigurationinstance with default settings.SpelParserConfiguration(boolean autoGrowNullReferences, boolean autoGrowCollections) Create a newSpelParserConfigurationinstance.SpelParserConfiguration(boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize) Create a newSpelParserConfigurationinstance.SpelParserConfiguration(@Nullable SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader) Create a newSpelParserConfigurationinstance.SpelParserConfiguration(@Nullable SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize) Create a newSpelParserConfigurationinstance.SpelParserConfiguration(@Nullable SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize, int maximumExpressionLength) Create a newSpelParserConfigurationinstance.SpelParserConfiguration(SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize, int maximumExpressionLength, int maximumOperations) Create a newSpelParserConfigurationinstance.SpelParserConfiguration(SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize, int maximumExpressionLength, int maximumOperations, int maximumBigPowerBits) Create a newSpelParserConfigurationinstance. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()Create a newSpelParserConfiguration.Builderfor configuring aSpelParserConfiguration.Return theClassLoaderto use as the basis for expression compilation.Return the compiler mode for parsers using this configuration object.intReturn the maximum size to which a collection can auto grow.intReturn the maximum number of bits permitted in the result of aBigDecimalorBigIntegerpower operation.intReturn the maximum number of characters that a SpEL expression can contain.intReturn the maximum number of operations permitted during SpEL expression evaluation.booleanReturntrueif collections should be automatically grown.booleanReturntrueifnullreferences should be automatically grown.static SpelParserConfigurationCreate a newSpelParserConfigurationinstance with the same defaults applied bybuilder().
-
Field Details
-
DEFAULT_MAX_EXPRESSION_LENGTH
public static final int DEFAULT_MAX_EXPRESSION_LENGTHDefault maximum length permitted for a SpEL expression: 10000.- Since:
- 5.2.24
- See Also:
-
DEFAULT_MAX_OPERATIONS
public static final int DEFAULT_MAX_OPERATIONSDefault maximum number of operations permitted during SpEL expression evaluation: 10000.- Since:
- 6.2.19
- See Also:
-
DEFAULT_MAX_BIG_POWER_BITS
public static final int DEFAULT_MAX_BIG_POWER_BITSDefault maximum number of bits permitted in the result of aBigDecimalorBigIntegerpower operation within a SpEL expression: 1000000.Approximately equivalent to a decimal number with 300,000 digits.
- Since:
- 7.0.9
- See Also:
-
SPRING_EXPRESSION_COMPILER_MODE_PROPERTY_NAME
System property to configure the default compiler mode for SpEL expression parsers: "spring.expression.compiler.mode".NOTE: Instead of relying on a global default, applications and frameworks should ideally set an explicit custom value via
SpelParserConfiguration.Builder.compilerMode(SpelCompilerMode), which provides complete configuration control and the ability to override global defaults per use case.Can also be configured via the
SpringPropertiesmechanism.- See Also:
-
SPRING_EXPRESSION_MAX_OPERATIONS_PROPERTY_NAME
System property to configure the default maximum number of operations permitted during SpEL expression evaluation: "spring.expression.maxOperations".NOTE: Instead of relying on a global default, applications and frameworks should ideally set an explicit custom value via
SpelParserConfiguration.Builder.maximumOperations(int), which provides complete configuration control and the ability to override global defaults per use case.Can also be configured via the
SpringPropertiesmechanism.- Since:
- 6.2.19
- See Also:
-
SPRING_EXPRESSION_MAX_BIG_POWER_BITS_PROPERTY_NAME
System property to configure the default maximum number of bits permitted in the result of aBigDecimalorBigIntegerpower operation within a SpEL expression: "spring.expression.maxBigPowerBits".NOTE: Instead of relying on a global default, applications and frameworks should ideally set an explicit custom value via
SpelParserConfiguration.Builder.maximumBigPowerBits(int), which provides complete configuration control and the ability to override global defaults per use case.Can also be configured via the
SpringPropertiesmechanism.- Since:
- 7.0.9
- See Also:
-
-
Constructor Details
-
SpelParserConfiguration
public SpelParserConfiguration()Create a newSpelParserConfigurationinstance with default settings.NOTE: Favor
builder()for complete configuration control and the ability to override global defaults per use case.- See Also:
-
SpelParserConfiguration
public SpelParserConfiguration(@Nullable SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader) Create a newSpelParserConfigurationinstance.NOTE: Favor
builder()for complete configuration control and the ability to override global defaults per use case.- Parameters:
compilerMode- the compiler mode that parsers using this configuration should use; ornullto use the default modecompilerClassLoader- theClassLoaderto use as the basis for expression compilation; ornullto use the defaultClassLoader- See Also:
-
SpelParserConfiguration
public SpelParserConfiguration(boolean autoGrowNullReferences, boolean autoGrowCollections) Create a newSpelParserConfigurationinstance.NOTE: Favor
builder()for complete configuration control and the ability to override global defaults per use case.- Parameters:
autoGrowNullReferences- if null references should automatically growautoGrowCollections- if collections should automatically grow- See Also:
-
SpelParserConfiguration
public SpelParserConfiguration(boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize) Create a newSpelParserConfigurationinstance.NOTE: Favor
builder()for complete configuration control and the ability to override global defaults per use case.- Parameters:
autoGrowNullReferences- if null references should automatically growautoGrowCollections- if collections should automatically growmaximumAutoGrowSize- the maximum size to which a collection can auto grow- See Also:
-
SpelParserConfiguration
public SpelParserConfiguration(@Nullable SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize) Create a newSpelParserConfigurationinstance.NOTE: Favor
builder()for complete configuration control and the ability to override global defaults per use case.- Parameters:
compilerMode- the compiler mode that parsers using this configuration should use; ornullto use the default modecompilerClassLoader- theClassLoaderto use as the basis for expression compilation; ornullto use the defaultClassLoaderautoGrowNullReferences- if null references should automatically growautoGrowCollections- if collections should automatically growmaximumAutoGrowSize- the maximum size to which a collection can auto grow- See Also:
-
SpelParserConfiguration
public SpelParserConfiguration(@Nullable SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize, int maximumExpressionLength) Create a newSpelParserConfigurationinstance.NOTE: Favor
builder()for complete configuration control and the ability to override global defaults per use case.- Parameters:
compilerMode- the compiler mode that parsers using this configuration should use; ornullto use the default modecompilerClassLoader- theClassLoaderto use as the basis for expression compilation; ornullto use the defaultClassLoaderautoGrowNullReferences- if null references should automatically growautoGrowCollections- if collections should automatically growmaximumAutoGrowSize- the maximum size to which a collection can auto growmaximumExpressionLength- the maximum length of a SpEL expression; must be a positive number- Since:
- 5.2.25
- See Also:
-
SpelParserConfiguration
public SpelParserConfiguration(SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize, int maximumExpressionLength, int maximumOperations) Create a newSpelParserConfigurationinstance.NOTE: Favor
builder()for complete configuration control and the ability to override global defaults per use case.- Parameters:
compilerMode- the compiler mode that parsers using this configuration should use; must not benullcompilerClassLoader- theClassLoaderto use as the basis for expression compilation; ornullto use the defaultClassLoaderautoGrowNullReferences- if null references should automatically growautoGrowCollections- if collections should automatically growmaximumAutoGrowSize- the maximum size to which a collection can auto growmaximumExpressionLength- the maximum length of a SpEL expression; must be a positive numbermaximumOperations- the maximum number of operations permitted during SpEL expression evaluation; must be a positive number- Since:
- 6.2.19
- See Also:
-
SpelParserConfiguration
public SpelParserConfiguration(SpelCompilerMode compilerMode, @Nullable ClassLoader compilerClassLoader, boolean autoGrowNullReferences, boolean autoGrowCollections, int maximumAutoGrowSize, int maximumExpressionLength, int maximumOperations, int maximumBigPowerBits) Create a newSpelParserConfigurationinstance.NOTE: Favor
builder()for a more readable way to override global defaults per use case.- Parameters:
compilerMode- the compiler mode that parsers using this configuration should use; must not benullcompilerClassLoader- theClassLoaderto use as the basis for expression compilation; ornullto use the defaultClassLoaderautoGrowNullReferences- if null references should automatically growautoGrowCollections- if collections should automatically growmaximumAutoGrowSize- the maximum size to which a collection can auto growmaximumExpressionLength- the maximum length of a SpEL expression; must be a positive numbermaximumOperations- the maximum number of operations permitted during SpEL expression evaluation; must be a positive numbermaximumBigPowerBits- the maximum number of bits permitted in the result of aBigDecimalorBigIntegerpower operation; must be a positive number; useInteger.MAX_VALUEfor no limit- Since:
- 7.0.9
-
-
Method Details
-
withDefaults
Create a newSpelParserConfigurationinstance with the same defaults applied bybuilder().This is shorthand for
SpelParserConfiguration.builder().build(), for use whenever none of the defaults need to be overridden.- Since:
- 7.0.10
- See Also:
-
builder
Create a newSpelParserConfiguration.Builderfor configuring aSpelParserConfiguration.The builder only requires configuration of the properties that need to deviate from their sensible defaults. See
SpelParserConfiguration.Builderfor details on those defaults.- Since:
- 7.0.10
- See Also:
-
getCompilerMode
Return the compiler mode for parsers using this configuration object. -
getCompilerClassLoader
Return theClassLoaderto use as the basis for expression compilation. -
isAutoGrowNullReferences
public boolean isAutoGrowNullReferences()Returntrueifnullreferences should be automatically grown. -
isAutoGrowCollections
public boolean isAutoGrowCollections()Returntrueif collections should be automatically grown. -
getMaximumAutoGrowSize
public int getMaximumAutoGrowSize()Return the maximum size to which a collection can auto grow. -
getMaximumExpressionLength
public int getMaximumExpressionLength()Return the maximum number of characters that a SpEL expression can contain.- Since:
- 5.2.25
-
getMaximumOperations
public int getMaximumOperations()Return the maximum number of operations permitted during SpEL expression evaluation.- Since:
- 6.2.19
-
getMaximumBigPowerBits
public int getMaximumBigPowerBits()Return the maximum number of bits permitted in the result of aBigDecimalorBigIntegerpower operation.- Since:
- 7.0.9
-