본문 바로가기

Dev. Java/Dev.Spring

contextConfigLocation / org.springframework.web.context.ContextLoaderListener(스프링 설정파일 읽기)

스프링에서는 설정파일에서 모든 것을 명시해주기 때문에 설정파일이 중요한데
설정파일 안에는 dataSource, bean(dao, service) 등 필요한 모든 객체가 다 들어있다.
그럼 이 설정파일들은 어떻게 해서 컨테이너 안에서 동작을 하는지? 어떻게 xml 설정파일을 읽는지 
스프링 프레임웍이 어떻게 동작하는지 궁금하다.

가장 기본은 web.xml 파일에 스프링 설정 파일을 명시해주면 된다는 것.
스프링 설정파일을 읽어 들이기 위해서 org.springframework.web.context.ContextLoaderListener 가
필요하다. 이 리스너가 동작해야 설정파일을 읽어들이고 필요한 객체들을 등록하고 만드는 것이다.
그럼 리스너는 동작을 하는데 설정파일의 위치를 알려주어야 할 것이 아닌가 그래서
<context-param> 안에 contextConfigLocation 이라고 해서 위치를 지정해 주는 것이다.
하나의 파일이든 여러개든 명시해서 읽어올 수 가 있다.


그럼 이제 그 방법을 자세히 보자.
                                                                              


계층별로 나눈 xml 설정파일이 있다고 가정할 때,

web.xml에서 모두 load되도록 등록할 때 사용.
서블릿이전에 서블릿 초기화하는 용도록 쓰이며, 
contextConfigLocation라는 파라미터를 쓰면, 
Context Loader가 load할 수 있는 설정파일을 여거개 쓸 수 있다.

web.xml에 저 문장이 빠지게 되면 default로,
/WEB-INF/applicationContext.xml (spring 설정파일) 을 쓰게 된다.

[web.xml]

<context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
           /WEB-INF/mars-ibatis.xml 
           /WEB-INF/mars-service.xml 
      </param-value>
</context-param>

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>