-
SpEL(Spring Expression Language) (스프링 핵심 기술 - 4)Programming/Spring Framework 주요 개념 2020. 3. 5. 00:01728x90
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'Programming > Spring Framework 주요 개념' 카테고리의 다른 글
Null-Safety (스프링 핵심 기술 - 6) (0) 2020.03.05 스프링 AOP (스프링 핵심 기술 - 5) (0) 2020.03.05 데이터 바인딩 추상화 (스프링 핵심 기술 - 3) (0) 2020.03.04 Resource / Validation (스프링 핵심 기술 - 2) (0) 2020.03.04 스프링 IoC 컨테이너와 빈 (스프링 핵심 기술 - 1) (0) 2020.03.04