반응형
스프링 EL 이란?
- 객체 그래프를 조회하고 조작하는 기능을 제공한다.
- Unified EL과 비슷하지만, 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다.
- 스프링 3.0부터 지원
SpEL 구성
- ExpressionParser parser = new SpelExpressionParser()
- StandardEvaluationContext context = new StandardEvaluationContext(bean)
- Expression expression = parser.parseExpression("SpEL 표현식");
- String value = expression.getValue(context, String.class)
문법
- #{"표현식"}
- ${"프로퍼티"}
- 표현식은 프로퍼티를 가질 수 있지만, 반대는 안됨
- #{${my.data} +1 }
- 레퍼런스 https://docs.spring.io/spring/docs/4.3.10.RELEASE/spring-framework-reference/html/expressions.html
실제로 어디서 쓰나?
- @Value 어노테이션
- @ConditionalOnExpression 애노테이션
- 스프링 시큐리티
- 스프링 데이터
- Query 어노테이션
@Component
public class SpelAppRunner implements ApplicationRunner {
@Value("#{ 1+ 1}") // 표현식 사용
int value;
@Value("#{'hello' + 'world'}")
String greeting;
@Value("#{1 eq 1}")
boolean trueOrFalse;
@Value("${my.value}")
int myValue;
@Value("#{${my.value} eq 100}")
boolean isMyValue100;
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("========= SpEL ========");
System.out.println(value);
System.out.println(greeting);
System.out.println(trueOrFalse);
System.out.println(myValue);
System.out.println(isMyValue100);
}
}
사실 @Value 어노테이션안에서만 사용해본 기억만 있다.
출처 : 백기선님의 스프링 프레임워크 핵심 기술 강좌
반응형
'프로그래밍 노트 > SPRING' 카테고리의 다른 글
[Spring] 스프링 AOP_2 : 프록시 기반 AOP (0) | 2020.04.03 |
---|---|
[Spring] 스프링 AOP_1 : 개념소개 (0) | 2020.03.29 |
[Spring] 데이터바인딩 - Converter와 Formatter (0) | 2020.03.26 |
[Spring] 데이터 바인딩 - PropertyEditor (0) | 2020.03.25 |
[Spring] Validation 추상화 (0) | 2020.03.24 |