code: private static EvaluationContext buildEvaluationContext(final String expression) {
          return new DDRSpelEvaluationContext() {
  
              @Override
              public Object lookupVariable(String name) {
                  Object val = null;
                  if (isReservedWords(name)) {
                      val = super.lookupVariable(name);
                      if (val == null) {
                          throw new ExpressionValueNotFoundException("Value of '" + name
                                                                     + "' is not found when parsing expression '"
                                                                     + expression + "'");
                      }
                  } else {
                      val = ShardRouteRuleExpressionContext.lookupVariable(name);
                  }
                  return val;
              }
          };
      }
docs: load order
  1.reserved words
  2.function
  3.user-define var