读书人

【第五章】Spring表达式语言 之 5.3 S

发布时间: 2012-09-07 10:38:15 作者: rapoo

【第五章】Spring表达式语言 之 5.3 SpEL语法 ——跟我学spring3

5.3? SpEL语法

5.3.1? 基本表达式

一、字面量表达式:?SpEL支持的字面量包括:字符串、数字类型(int、long、float、double)、布尔类型、null类型。

类型

示例

字符串

String str1 = parser.parseExpression("'Hello World!'").getValue(String.class);

String str2 = parser.parseExpression("\"Hello World!\"").getValue(String.class);

数字类型

int int1 = parser.parseExpression("1").getValue(Integer.class);

long long1 = parser.parseExpression("-1L").getValue(long.class);

float float1 = parser.parseExpression("1.1").getValue(Float.class);

double double1 = parser.parseExpression("1.1E+2").getValue(double.class);

int hex1 = parser.parseExpression("0xa").getValue(Integer.class);

long hex2 = parser.parseExpression("0xaL").getValue(long.class);

布尔类型

boolean true1 = parser.parseExpression("true").getValue(boolean.class);

boolean false1 = parser.parseExpression("false").getValue(boolean.class);

null类型

Object null1 = parser.parseExpression("null").getValue(Object.class);

?

二、算数运算表达式:?SpEL支持加(+)、减(-)、乘(*)、除(/)、求余(%)、幂(^)运算。

类型

示例

加减乘除

int result1 = parser.parseExpression("1+2-3*4/2").getValue(Integer.class);//-3

求余

int result2 = parser.parseExpression("4%3").getValue(Integer.class);//1

幂运算

int result3 = parser.parseExpression("2^3").getValue(Integer.class);//8

SpEL还提供求余(MOD)和除—IV)而外两个运算符,与“%”和“/”等价,不区分大小写。

?

三、关系表达式:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=),区间(between)运算,如“parser.parseExpression("1>2").getValue(boolean.class);”将返回false;而“parser.parseExpression("1 between {1, 2}").getValue(boolean.class);”将返回true。

?????? between运算符右边操作数必须是列表类型,且只能包含2个元素。第一个元素为开始,第二个元素为结束,区间运算是包含边界值的,即 xxx>=list.get(0) && xxx<=list.get(1)。

?????? SpEL同样提供了等价的“EQ” 、“NE”、 “GT”、“GE”、 “LT” 、“LE”来表示等于、不等于、大于、大于等于、小于、小于等于,不区分大小写。

?

四、逻辑表达式:且(and)、或(or)、非(!或NOT)。

?

。我使用的场景比较小! 而且SpEL现在是spring比较核心的模块

读书人网 >软件架构设计

热点推荐