마케팅스프린트 2021. 6. 22. 11:18
  • SpEL
    • Spring Expression Language
      • 객체 그래프를 조회하고 조작하는 기능을 제공한다.
      • Unified EL과 비슷하지만 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다.
      • OGNL, MVEL, JBOss EL 등 자바에서 사용할 수 있는 여러 EL이 있지만 SpEL은 모든 스프링 프로젝트 전반에 걸쳐 사용할 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}
      • 표현식은 프로퍼티를 가질 수 있지만, 반대는 안된다.
  • 실제로 SpEL을 사용하는 경우
    • @Value 어노테이션
    • @ConditionalOnExpression 어노테이션
    • Spring Security
      • Method Security
      • @PreAuthorize
      • @PostAuthorize
      • @PreFilter
      • @PostFilter
      • XML Interceptor URL 설정
    • Spring Data
      • @Query 어노테이션
    • Thymeleaf