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