Spring表达式语言简称:SpEL,SpEL既可以独立于Spring容器使用,,也可以在Spring配置文件中使用,这样就大大简化了Spring的Bean配置,给配置文件起到了“减肥”的作用,下面开始总结SpEL语法
1:直接量表达式
直接量表达式也是SpEL最简单的表达式,如下:
public class SpelGrammar
{
public static void main(String[]args)
{
// 创建一个ExpressionParser对象,用于解析表达式
ExpressionParser parser = new SpelExpressionParser();
// 使用直接量表达式
Expression exp = parser.parseExpression("'VipMao");
System.out.println(exp.getValue(String.class));
exp = parser.parseExpression("6.9");
System.out.println(exp.getValue(Double.class));
}
}
运行结果:
VipMao
6.9
2:在表达式中创建数组
SpEL创建数组的方式和常规创建没有什么不同,SpEL也支持静态创建和动态创建两种方式。
public static void main(String[]args)
{
// 创建一个ExpressionParser对象,用于解析表达式
ExpressionParser parser = new SpelExpressionParser();
//------------使用SpEL创建数组-----------
Expression exp=parser.parseExpression("new String[]{'Struts2','Hibernate','Spring'}");
System.out.println(exp.getValue(String.class));
// 创建二维数组
exp = parser.parseExpression(
"new int[2][4]");
System.out.println(exp.getValue(int.class));;
}
}
运行结果:
Struts2,Hibernate,Spring
0
0
3:在表达式中创建List集合
SpEL支持直接使用{ele1,ele2,ele3...}语法来创建List集合,但是这样没法修改集合内的元素。
public class SpelGrammar
{
public static void main(String[]args)
{
// 创建一个ExpressionParser对象,用于解析表达式
ExpressionParser parser = new SpelExpressionParser();
//------------使用SpEL创建数组-----------
Expression exp=parser.parseExpression("{'java','c语言','PHP'}");
System.out.println(exp.getValue(String.class));
// 创建“二维”List集合
exp = parser.parseExpression(
"{
{'孙悟空' , '哪吒'}, {'刘备' , '诸葛亮'}}");
System.out.println(exp.getValue());
}
}
运行结果:
java,c语言,PHP
[[孙悟空, 哪吒], [刘备, 诸葛亮]]
[[孙悟空, 哪吒], [刘备, 诸葛亮]]
4:SpEL中访问List、Map等元素集合
在SpEL中通过list[index]访问List集合元素,通过map[key]访问Map集合元素,下面咱们通过常规创建集合,修改他们的集合元素并访问特定的集合元素。
public class SpelGrammar
{
public static void main(String[]args)
{
// 创建一个ExpressionParser对象,用于解析表达式
ExpressionParser parser = new SpelExpressionParser();
//------------使用SpEL创建数组-----------
//------------使用SpEL访问List集合、Map集合的元素-----------
List<String>list=new ArrayList<String>();
list.add("java");
list.add("PHP");
Map<String,Double>map=new HashMap<String,Dou