반응형
Spring은 SpEL (Spring Expression Language)를 제공하고 있다.
Spring Expression Language (SpEL)
RequestMapping
이나 value binding 등 Spring을 사용하는 수많은 부분에 SpEL을 사용할 수 있고 다양한 기능을 지원한다.
- Literal expressions
- Boolean and relational operators
- Regular expressions
- Class expressions
- Accessing properties, arrays, lists, and maps
- Method invocation
- Assignment
- Calling constructors
- Bean references
- Array construction
- Inline lists
- Inline maps
- Ternary operator
- Variables
- User-defined functions added to the context
- reflective invocation of Method
- various cases of MethodHandle
- Collection projection
- Collection selection
- Templated expressions
Spring이 제공하는 SpEL 문법을 개별적으로 사용하고 싶은 경우 Spring Framework가 3.0.0부터 제공하는 SpelExpressionParser
를 다음과 같이 사용하면 된다.
var expressionParser = new SpelExpressionParser();
var evaluationContext = new StandardEvaluationContext();
evaluationContext.setVariable("testKey", "testValue");
Expression expression = expressionParser.parseExpression("'Any string : ' + #testKey");
String result = (String) expression.getValue(evaluationContext);
// result : Any string : testValue
evaluationContext를 생성하여 임의의 값을 추가하고 SpEL로 해당 값을 사용하는 경우의 예제이다.
반응형
'Study > Java' 카테고리의 다른 글
SonarQube, SonarLint issue 예외 처리하기 (0) | 2024.05.11 |
---|---|
JDK 22 New Features (0) | 2024.03.21 |
Eclipse (STS) 에서 Parameter Name Hint 사용하기 (0) | 2024.03.08 |
Spring ApplicationContext에서 GenericType 기준으로 bean 호출하기 (0) | 2024.03.06 |
Thymeleaf에서 DaisyUI Theme 사용해 보기 (0) | 2024.02.09 |
@ConfigurationProperties를 사용하지 않고 method 내에서 properties의 변수 binding 하기 (0) | 2024.02.04 |
Spring에서 URL의 PathVariable을 Filter 단계에서 호출하여 사용하기 (0) | 2024.02.03 |
Google Bard (Gemini)에게 Spring Boot 3.2의 변경점을 물어보았다. (0) | 2023.12.07 |
Spring Boot 3.2 Release Notes (0) | 2023.12.01 |
Spring Boot WebMVC에서 Thymeleaf, Mustache ViewResolver 같이 사용하기 (0) | 2023.11.25 |