org.springframework.context.expression

## Class StandardBeanExpressionResolver

- java.lang.Object
- - org.springframework.context.expression.StandardBeanExpressionResolver

- All Implemented Interfaces:
    BeanExpressionResolver

      public class StandardBeanExpressionResolver
      extends Object
      implements 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
  See Also:
    `BeanExpressionContext.getBeanFactory()`, `ExpressionParser`, `SpelExpressionParser`, `StandardEvaluationContext`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_EXPRESSION_PREFIX` Default expression prefix: "#{".
    `static String` | `DEFAULT_EXPRESSION_SUFFIX` Default expression suffix: "}".

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StandardBeanExpressionResolver()` Create a new `StandardBeanExpressionResolver` with default settings.
    `StandardBeanExpressionResolver(ClassLoader beanClassLoader)` Create a new `StandardBeanExpressionResolver` with the given bean class loader, using it as the basis for expression compilation.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `customizeEvaluationContext(StandardEvaluationContext evalContext)` Template method for customizing the expression evaluation context.
    `Object` | `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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_EXPRESSION_PREFIX

          public static final String DEFAULT_EXPRESSION_PREFIX

      Default expression prefix: "#{".
      See Also:
        Constant Field Values

    - #### DEFAULT_EXPRESSION_SUFFIX

          public static final String DEFAULT_EXPRESSION_SUFFIX

      Default expression suffix: "}".
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### StandardBeanExpressionResolver

          public StandardBeanExpressionResolver()

      Create a new `StandardBeanExpressionResolver` with default settings.

    - #### StandardBeanExpressionResolver

          public StandardBeanExpressionResolver(@Nullable
                                                ClassLoader beanClassLoader)

      Create a new `StandardBeanExpressionResolver` with the given bean class loader, using it as the basis for expression compilation.
      Parameters:
        `beanClassLoader` - the factory's bean class loader

  - ### Method Detail

    - #### setExpressionPrefix

          public void setExpressionPrefix(String expressionPrefix)

      Set the prefix that an expression string starts with. The default is "#{".
      See Also:
        `DEFAULT_EXPRESSION_PREFIX`

    - #### setExpressionSuffix

          public void setExpressionSuffix(String expressionSuffix)

      Set the suffix that an expression string ends with. The default is "}".
      See Also:
        `DEFAULT_EXPRESSION_SUFFIX`

    - #### setExpressionParser

          public void setExpressionParser(ExpressionParser expressionParser)

      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 interface `BeanExpressionResolver`
      Parameters:
        `value` - the value to evaluate as an expression
        `beanExpressionContext` - 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

          protected void customizeEvaluationContext(StandardEvaluationContext evalContext)

      Template method for customizing the expression evaluation context.

      The default implementation is empty.