ExpressionParser 인터페이스는 문자열 표현을 파싱한다ㅏ.
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Hello World'");
String message = (String) exp.getValue();
#{표현식}
${”프로퍼티”}
#{${my.data(프로퍼티명) + 1}}
// SpEL #, 표현식을 참고하는 방법
@Value("#{1 + 1}")
int value;
@Value("#{'hello' + 'worlld'}")
String greeting;
@Value("#{1 eq 1}")
boolean trueOrFalse;
@Value("test")
String test;
// property를 참고하는 방법
@Value("${my.value}")
int myValue;
@Value("#{${my.value} eq 100}")
boolean isMyValue100;
@Value("#{sample.data}")
int sampleData;
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("value = " + value);
System.out.println("greeting = " + greeting);
System.out.println("trueOrFalse = " + trueOrFalse);
System.out.println("test = " + test);
System.out.println("myValue = " + myValue);
System.out.println("isMyValue100 = " + isMyValue100);
System.out.println("sampleData = " + sampleData);
ExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("2 + 100");
Integer value = expression.getValue(Integer.class);
System.out.println("value = " + value);
}
@Value
애노테이션출처 : [인프런 강의] 백기선 - 스프링 프레임워크 핵심기술
참고 : https://blog.outsider.ne.kr/997