Spring 3.0 + myBatis 설정파일 구조
Spring Framework 를 사용하면서 설정파일에 대한 정확한 개념을 가지고 있지 못했던 것 같았다. 이번에 교육을 통해서 그동안 정확하게 머릿속에 정리되지 않았던 설정파일들에 대해 정리하고자 한다.
필자와 같이 Spring Framework 를 사용하면서 무조건 코딩만 해왔던 분이라면 한번쯤 읽어보면 어떨가 하고 추천해본다. 몸값 높은 개발자를 위하여! 재미있는 개발을 위하여!
1. 디렉토리 구조
web server doocroot 폴더 구조의 일부를 보면 아래와 같다. WEB-INF 밑에는 컴파일된 class파일이 담겨져 있는 classes 폴더와 웹어플리케이션에서 사용하는 라이브러리들이 위치하는 lib 폴더가 대표적이다. 그리고 오늘 알아보려고 하는 dispater-servlet.xml, applicationContext.xml 도 함께 존재한다. ( 단, 앞에 언급한 두개의 xml 설정파일 명은 변경이 가능하다. 여기서는 일반적인 경우의 파일명을 사용하겠다.)
|ㅡ WEB-INF ㅡ web.xml
ㄴ dispatcher-servlet.xml
ㄴ applicationContext.xml
2. web.xml
Spring Framework 를 위한 설정에서 가장 큰역할을 하는것이 Dispatcher Servlet을 등록하는 것이다. 과거에 서브릿을 공부할때와 동일하게 특정유형의 서블릿 요청을 특정 Dispatcher Servlet 이 처리 하도록 설정한다. 아래 예제를 참고하자.
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-patter>*.do</url-pattern>
</servlet-mapping>
3. ContextLoadListener 설정파일 ( applicationContext.xml )
WAS( ex. tomcat )가 처음 기동할때 설정해야 되는 내용들을 주로 입력한다. 예를 들면 DB연결정보, Spring Framework 의 Service Bean, 데이터베이스를 핸들링하기위한 DAO Bean 들을 바인딩하는 설정들이 위치한다.
즉, 서비스에 필요한 DB, DAO, Service 빈들을 불러온다고 생각하면 되겠다. 그럼 아래 예제 코드를 참고해 보자.
4. Spring MVC 환경파일 ( dispatcher-servlet.xml )
WAS에 첫 요청( request ) 이 들어왔을 때, 불러진다고 이해하면 된다. ( 사실 tomcat이 기동될 때, 해당 설정파일을 읽어들여 유효성 검사를 하기는 한다. ) 그래서 요청에 필요한 계층에 해당하는 Bean들을 등록할 수 있도록 설정파일에 명시해 주면된다. 예를 들어 view, controller 계층에 해당하는 Bean 객체를 Scan하는 설정을 하도록 한다. 아래 예제를 보면 이해하는데 더 많은 도움이 될 것이다.