1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class SpelUtils {
private static final SpelExpressionParser parser = new SpelExpressionParser(); private static final DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer();
public static Object parseValue(String spel, Method method, Object[] args) { String[] parameterNames = nameDiscoverer.getParameterNames(method); if (parameterNames == null) { return null; } EvaluationContext context = new StandardEvaluationContext(); for (int i = 0; i < args.length; i++) { context.setVariable(parameterNames[i], args[i]); } Expression expression = parser.parseExpression(spel);
return expression.getValue(context); }
}
|