Loading...
Spring Framework Reference Documentation 7.0.2의 Literal Expressions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
SpEL은 다음과 같은 타입의 리터럴 expression을 지원합니다.
String은 single quotation mark(') 또는 double quotation mark(")로 구분할 수 있습니다. single quotation mark로 둘러싸인 string 리터럴 안에 single quotation mark를 포함하려면, 두 개의 인접한 single quotation mark 문자를 사용합니다.
마찬가지로, double quotation mark로 둘러싸인 string 리터럴 안에 double quotation mark를 포함하려면, 두 개의 인접한 double quotation mark 문자를 사용합니다.
Number는 음수 기호, exponential notation, decimal point의 사용을 지원합니다.
int 또는 longint 또는 longfloat 또는 double
Double.parseDouble()을 사용하여 parse됩니다.true 또는 false
null
Spring Expression Language의 설계와 구현으로 인해, 리터럴 number는<br>항상 내부적으로 양수로 저장됩니다.<br>예를 들어,
-2는 내부적으로 양수2로 저장되며, expression을 평가하는 동안<br>(0 - 2의 값을 계산하여) 음수로 변환됩니다.<br>이는 Java에서 해당 number 타입의 최소 값과 같은 음수 리터럴 number를<br>표현하는 것이 불가능하다는 것을 의미합니다. 예를 들어, Java에서int의 최소<br>지원 값은 값이-2147483648인Integer.MIN_VALUE입니다. 그러나<br>SpEL expression에-2147483648을 포함하면, 값2147483648을int로<br>parse할 수 없다는 예외가 발생합니다 (Integer.MAX_VALUE의 값인<br>2147483647을 초과하기 때문입니다).<br>SpEL expression 내에서 특정 number 타입의 최소 값을 사용해야 하는 경우,<br>해당 wrapper 타입의MIN_VALUEconstant(예:Integer.MIN_VALUE,<br>Long.MIN_VALUE등)를 reference하거나 최소 값을 계산할 수 있습니다.<br>예를 들어, 최소 integer 값을 사용하려면:<br>-T(Integer).MIN_VALUE—StandardEvaluationContext가 필요함<br><br>--2^31— 어떤 타입의EvaluationContext와도 함께 사용할 수 있음
다음 예시는 리터럴의 간단한 사용법을 보여줍니다. 일반적으로 리터럴은 이처럼<br>단독으로 사용되지 않고, 더 복잡한 expression의 일부로 사용됩니다.
예를 들어,<br>논리 비교 연산자의 한쪽에 리터럴을 사용하거나 메서드의 argument로 사용합니다.
1ExpressionParser parser = new SpelExpressionParser(); 2 3// evaluates to "Hello World" 4String helloWorld = (String) parser.parseExpression("'Hello World'").getValue(); 5 6// evaluates to "Tony's Pizza" 7String pizzaParlor = (String) parser.parseExpression("'Tony''s Pizza'").getValue(); 8 9double avogadrosNumber = (Double) parser.parseExpression("6.0221415E+23").getValue(); 10 11// evaluates to 2147483647 12int maxValue = (Integer) parser.parseExpression("0x7FFFFFFF").getValue(); 13 14boolean trueValue = (Boolean) parser.parseExpression("true").getValue(); 15 16Object nullValue = parser.parseExpression("null").getValue();
1val parser = SpelExpressionParser() 2 3// evaluates to "Hello World" 4val helloWorld = parser.parseExpression("'Hello World'").value as String 5 6// evaluates to "Tony's Pizza" 7val pizzaParlor = parser.parseExpression("'Tony''s Pizza'").value as String 8 9val avogadrosNumber = parser.parseExpression("6.0221415E+23").value as Double 10 11// evaluates to 2147483647 12val maxValue = parser.parseExpression("0x7FFFFFFF").value as Int 13 14val trueValue = parser.parseExpression("true").value as Boolean 15 16val nullValue = parser.parseExpression("null").value
Language Reference
Properties, Arrays, Lists, Maps, and Indexers