Programming/Spring Framework 주요 개념
SpEL(Spring Expression Language) (스프링 핵심 기술 - 4)
흠냐아뤼
2020. 3. 5. 00:01
728x90
1. SpEL 이란?
- 객체 그래프를 조회하고 조작하는 기능을 제공한다
- #{"표현식"}
- ${"프로퍼티"}
- 표현식 안에 프로퍼티 사용이 가능
2. 실제로 어디에서 쓰이는지?
- @Value 어노테이션
- @ConditionOnExpression 어노테이션
- 스프링 시큐리티
- 스프링 데이터
- Thymeleaf
3. 예제
@Component
public class AppRunner implements ApplicationRunner {
@Value("#{1 + 1}")
int value;
@Value("#{'hello ' + 'hongchan'}")
String name;
@Value("#{1 eq 1}")
boolean bool;
@Value("Hello")
String str;
@Value("${my.value}")
int myValue;
@Value("#{${my.value} < 99}") // 표현식 안에 프로퍼티 사용이 가능
boolean bool100;
@Value("#{sampleClass.data}") // 빈으로 등록된 객체의 값 가져오기 (getter 존재해야 함)
int sampleData;
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println(value);
System.out.println(name);
System.out.println(bool);
System.out.println(str);
System.out.println(myValue);
System.out.println(bool100);
System.out.println(sampleData);
// 스프링 표현식은 실제로 이렇게 작동
ExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("12 + 23");
Integer value = expression.getValue(Integer.class);
System.out.println(value);
}
}
인프런 백기선님 '스프링 프레임워크 핵심 기술' 강의를 듣고 정리한 내용입니다.
728x90