#expression-language
글
-
Tomcat 소스 파헤치기 13: Jasper — JSP가 서블릿이 되기까지
hello.jsp를 처음 요청하면 Tomcat 안에서 무슨 일이 일어날까요? JspServlet이 요청을 받아 JSP 파일을 노드 트리로 읽고, 자바 소스로 옮겨 쓰고, ecj로 컴파일해 work 폴더에 .class를 남긴 뒤 그 클래스를 서블릿처럼 부르는 과정을 Jasper 소스로 따라갑니다. 생성된 .java 파일을 직접 열어 보고, JSP를 고쳤을 때 언제 다시 컴파일되는지(development, modificationTestInterval, checkInterval)도 예제로 확인합니다.
-
Spring 소스 파헤치기 15: SpEL — 표현식은 어떻게 파싱되고 계산되나
"#{T(java.lang.Math).max(a, 3) + 1}" 같은 문자열이 토큰이 되고, 트리가 되고, 값이 되기까지를 소스로 따라갑니다. 연산자 우선순위가 파서 메서드의 호출 순서로 표현되는 방식, StandardEvaluationContext 와 SimpleEvaluationContext 가 둘인 이유, 식을 바이트코드로 바꾸는 컴파일 모드, 그리고 @Value("#{…}") 가 컨테이너 안에서 풀리는 길을 Spring을 처음 보는 사람 기준으로 정리합니다.