SpEL(Spring Expression Language)
- 객체 그래프를 조회하고 조작하는 기능을 제공
- Unified EL과 비슷하지만, 메소드 호출 지원 및 문자열 템플릿 기능도 제공
- OGNL, MVEL, JBOssEL 등 자바에서 사용가능한 여러 EL들이 있지만, SpEL은 모든 스프링 프로젝트 전반 사용하는 EL
- 스프링 3.0부터 지원
SpEL 구성
- ExpresstionParser parser = new SpelExpressionParser()
- StandardEvalutationContext context = new StandardEvaluationContext(bean)
- Expression expression = parser.parseExpression("SpEL 표현식")
- String value = expression.getvalue(context,String.class)
문법
- #{"표현식"}
- ${"프로퍼티"}
- 표현식은 프로퍼티를 가질 수 있지만, 반대는 안됨
- #{${my.data}+1}
실제 사용하는 곳
- @Value
- @ConditionalOnExpression
- 스프링 시큐리티
- 메소드 시큐리티, @PreAuthorize, @PostAuthorize, @PreFilter, @PostFilter
- XML인터셉터 URL 설정
- ...
- 스프링 데이터
- @Query
- Thymeleaf
- ...
표현식을 이용하여 프로퍼티 접근, 메소드 사용을 자유롭게 할 수 있으므로 #이 보인다면 표현식임을 인지하자.
'Spring Boot > Core' 카테고리의 다른 글
Null-safety (0) | 2022.08.01 |
---|---|
스프링 AOP (0) | 2022.08.01 |
데이터 바인딩 추상화 (0) | 2022.07.26 |
Validation 추상화 (0) | 2022.07.25 |
Resource 추상화 (0) | 2022.07.25 |
댓글