SpEL (Spring Expression Language)
- SpEL(Spring Expression Language)은 스프링 프레임워크 전반에 걸쳐 널리 사용되며, 런타임 시에 값을 동적으로 설정하는 데 유용합니다. ⚙️
- SpEL은 환경 변수 접근, 조건부 표현식, 빈 메서드 호출, 스프링 시큐리티 권한 검사, JPA 쿼리 정의 등 다양한 곳에서 활용됩니다. 🛡️
- 기본적인 SpEL 사용법은
ExpressionParser
를 통해 표현식을 파싱하고, EvaluationContext
를 사용하여 변수를 정의 및 평가하는 과정을 포함합니다. 🧩
- 환경 변수는
Environment
, JVM 시스템 속성, 운영체제 시스템 환경 변수 세 가지 종류가 있으며, Environment
인터페이스를 통해 대부분 접근 가능합니다. 🌎
@Value
어노테이션과 SpEL을 함께 사용하여 환경 변수 값을 필드에 주입할 수 있습니다. 💉
- SpEL을 사용하여 스프링 빈을 주입하고, 빈의 메서드를 호출할 수 있습니다. 🫘
#root
는 SpEL 표현식 내에서 현재 평가 대상 객체(인스턴스)를 참조하는 데 사용됩니다. 🌳
- SpEL은 리스트, 맵과 같은 컬렉션 타입과 정규 표현식, 삼항 연산자 등 다양한 표현식을 지원합니다. 🧰