[Tips] Tomcat 기동 시에 특정 클래스 실행
[이슈]
보통 서블릿(servlet)은 처음 요청 처리 시에 로딩된다. 이로 인해 처음 요청 시에 보다 응답 속도가 느리다. 처음 요청 시에도 응답 속도를 빠르게 한다든지, 특정 Cache 영역의 데이터를 초기화 한다든지 등Tomcat 서버 기동 시에 해당 서블릿을 호출이 필요할 때가 있을 것이다.
[해결책]
web.xml 파일에 <load-on-startup> 엘리먼트에 0 이상 양수값을 추가한다. 실행되는 순서는 값이 적을 수록 먼저 실행된다. 아래 예시에서는 Tomcat 기동 시에 servlet1 -> servlet3 -> servlet2 순서대로 서블릿이 실행된다.
<web-app> ....
<servlet> <servlet-name>servlet1</servlet-name> <servlet-class>com.yikim.Servlet1</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <servlet> <servlet-name>servlet2</servlet-name> <servlet-class>com.yikim.Servlet2</servlet-class> <load-on-startup>9</load-on-startup> </servlet>
<servlet> <servlet-name>servlet3</servlet-name> <servlet-class>com.yikim.Servlet3</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
... </web-app> |