프로그래밍 노트/SPRING

[Spring] SpEL(스프링 Expression Language)

깡냉쓰 2020. 3. 29. 23:17
728x90
반응형

스프링 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)

문법

실제로 어디서 쓰나?

  • @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 어노테이션안에서만 사용해본 기억만 있다.

출처 : 백기선님의 스프링 프레임워크 핵심 기술 강좌

728x90
반응형