Class StandardBeanExpressionResolver
java.lang.Object
org.springframework.context.expression.StandardBeanExpressionResolver
- All Implemented Interfaces:
BeanExpressionResolver
Standard implementation of the
BeanExpressionResolver
interface, parsing and evaluating Spring EL using Spring's expression module.
All beans in the containing BeanFactory
are made available as
predefined variables with their common bean name, including standard context
beans such as "environment", "systemProperties" and "systemEnvironment".
- Since:
- 3.0
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorDescriptionCreate a newStandardBeanExpressionResolver
with default settings.StandardBeanExpressionResolver
(ClassLoader beanClassLoader) Create a newStandardBeanExpressionResolver
with the given bean class loader, using it as the basis for expression compilation. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
customizeEvaluationContext
(StandardEvaluationContext evalContext) Template method for customizing the expression evaluation context.evaluate
(String value, BeanExpressionContext beanExpressionContext) Evaluate the given value as an expression, if applicable; return the value as-is otherwise.void
setExpressionParser
(ExpressionParser expressionParser) Specify the EL parser to use for expression parsing.void
setExpressionPrefix
(String expressionPrefix) Set the prefix that an expression string starts with.void
setExpressionSuffix
(String expressionSuffix) Set the suffix that an expression string ends with.
-
Field Details
-
MAX_SPEL_EXPRESSION_LENGTH_PROPERTY_NAME
System property to configure the maximum length for SpEL expressions: "spring.context.expression.maxLength".Can also be configured via the
SpringProperties
mechanism.- Since:
- 6.1.3
- See Also:
-
DEFAULT_EXPRESSION_PREFIX
Default expression prefix: "#{".- See Also:
-
DEFAULT_EXPRESSION_SUFFIX
Default expression suffix: "}".- See Also:
-
-
Constructor Details
-
StandardBeanExpressionResolver
public StandardBeanExpressionResolver()Create a newStandardBeanExpressionResolver
with default settings.As of Spring Framework 6.1.3, the maximum SpEL expression length can be configured via the
MAX_SPEL_EXPRESSION_LENGTH_PROPERTY_NAME
property. -
StandardBeanExpressionResolver
Create a newStandardBeanExpressionResolver
with the given bean class loader, using it as the basis for expression compilation.As of Spring Framework 6.1.3, the maximum SpEL expression length can be configured via the
MAX_SPEL_EXPRESSION_LENGTH_PROPERTY_NAME
property.- Parameters:
beanClassLoader
- the factory's bean class loader
-
-
Method Details
-
setExpressionPrefix
Set the prefix that an expression string starts with. The default is "#{".- See Also:
-
setExpressionSuffix
Set the suffix that an expression string ends with. The default is "}".- See Also:
-
setExpressionParser
Specify the EL parser to use for expression parsing.Default is a
SpelExpressionParser
, compatible with standard Unified EL style expression syntax. -
evaluate
@Nullable public Object evaluate(@Nullable String value, BeanExpressionContext beanExpressionContext) throws BeansException Description copied from interface:BeanExpressionResolver
Evaluate the given value as an expression, if applicable; return the value as-is otherwise.- Specified by:
evaluate
in interfaceBeanExpressionResolver
- Parameters:
value
- the value to evaluate as an expressionbeanExpressionContext
- the bean expression context to use when evaluating the expression- Returns:
- the resolved value (potentially the given value as-is)
- Throws:
BeansException
- if evaluation failed
-
customizeEvaluationContext
Template method for customizing the expression evaluation context.The default implementation is empty.
-