15.2. Common configuration
웹과 관련된 것들은 별도의 레이어에 위치하고 있으며, 그들이 필요로 하는 내부 서비스와 DAO Bean들은 Facade를 통해서 사용합니다. 이 때 이러한 bean들을 등록하는 방법은 간단합니다.
web.xml에 다음과 같이 ContextLoaderListner를 등록하면 됩니다.
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
그리고 contextConfigLocation <context-param/>을 사용해서 설정 파일의 위치를 알려줍니다.
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
contextConfigLocation을 명시적으로 설정하지 않으면 기본으로 /WEB-INF/applicationContext.xml 파일을 찾게 됩니다.
설정 파일을 읽어들이면, WebApplicationContext를 생성하고 이것을 웹 애플리케이션의 ServletContext에 저장합니다.
모든 자바 웹 프레임워크는 Servlet API를 기반으로 만들어졌기 때문에, 다음의 코드를 사용해서 '비즈니스 bean'들을 담고 있는 컨테이너에 접근할 수 있습니다.
위의 메소드 ApplicationContext가 존재하지 않을 때, null을 반환합니다. 따라서 저것 대신에getRequiredWebApplicationContext() 을 사용하면 NullPointerException 대신에
ApplicationContext가 존재하지 않는 다는 예외를 던져줍니다.
앞으로 살펴볼 웹 프레임워크들에서 WebApplicationContext를 위와 같은 방법으로 얻은 다음 스프링이 관리하는 bean들을 얻을 수 있습니다. 하지만 대부분의 웹 프레임워크들은 스프링이 관리하는 bean을 얻기 위한 편리한 방법들을 제공해줌과 동시에 컨트롤러에서 의존성 삽입도 사용할 수 있도록 해줍니다.