一、Class类型
import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; public class TestSpelDemo2 { public static void main(String[] args) { //定义一个解析器 ExpressionParser parser = new SpelExpressionParser(); //解析指定的字符串 Expression expression = parser.parseExpression("T(String)"); EvaluationContext context = new StandardEvaluationContext(); Class<String> value = expression.getValue(context, Class.class); System.out.println(value); } }
输出结果:class java.lang.String
二、静态属性
import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; /** * 调用静态属性 */ public class TestSpelDemo4 { public static void main(String[] args) { ExpressionParser parse = new SpelExpressionParser(); Expression expression = parse.parseExpression("T(Integer).MAX_VALUE"); EvaluationContext context = new StandardEvaluationContext(); System.out.println(expression.getValue(context)); } }
输出结果:2147483647
三、静态方法
import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; /** * 调用静态方法 */ public class TestSpelDemo5 { public static void main(String[] args) { ExpressionParser parse = new SpelExpressionParser(); Expression expression = parse.parseExpression("T(Integer).parseInt('123')"); EvaluationContext context = new StandardEvaluationContext(); System.out.println(expression.getValue(context)); } }
输出结果:123
四、实例化(无参)
import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; /** * 实例化对象(无参) */ public class TestSpelDemo6 { public static void main(String[] args) { ExpressionParser parse = new SpelExpressionParser(); Expression expression = parse.parseExpression("new java.util.Date()"); EvaluationContext context = new StandardEvaluationContext(); System.out.println(expression.getValue(context)); } }
输出结果:Sat Feb 10 17:32:14 CST 2018
五、实例化(有参)
import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; /** * 实例化对象(有参) */ public class TestSpelDemo7 { public static void main(String[] args) { ExpressionParser parse = new SpelExpressionParser(); Expression expression = parse.parseExpression("new String('hello')"); EvaluationContext context = new StandardEvaluationContext(); System.out.println(expression.getValue(context)); } }
输出结果:hello
六、instanceof(判断一个字符串是否是String的实例)
import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; /** * instanceof * 判断一个字符串是否是String的实例 */ public class TestSpelDemo8 { public static void main(String[] args) { ExpressionParser parse = new SpelExpressionParser(); Expression expression = parse.parseExpression("'hello' instanceof T(String)"); EvaluationContext context = new StandardEvaluationContext(); System.out.println(expression.getValue(context)); } }
输出结果:true