09 Oct 2018
Spring Expression Language
spEL
spEL可以用在xml或者基于注释的spring配置。
有以下几种操作符:
Type | Operators | ||
---|---|---|---|
Arithmetic | +, -, *, /, %, ^, div, mod | ||
Relational | <, >, ==, !=, <=, >=, lt, gt, eq, ne, le, ge | ||
Logical | and, or, not, &&, | , ! | |
Conditional | ?: | ||
Regex | matches | ||
Type | T |
T 操作符可以指明一个类的实例,只有java.lang包可以不指明包的全名,其余均需指明。
Class dateClass = parser.parseExpression("T(java.util.Date)").getValue(Class.class);
Class stringClass = parser.parseExpression("T(String)").getValue(Class.class);
boolean trueValue =
parser.parseExpression("T(java.math.RoundingMode).CEILING < T(java.math.RoundingMode).FLOOR")
.getValue(Boolean.class);
在spring中常用的方式是:
@PreAuthorize("hasRole(T(fully.qualified.OtherClass).ROLE)");
Til next time,
at 20:42