Whiteship's Note

15.2. Common configuration

Spring/Chapter 15 : 2007.12.27 22:33


웹과 관련된 것들은 별도의 레이어에 위치하고 있으며, 그들이 필요로 하는 내부 서비스와 DAO Bean들은 Facade를 통해서 사용합니다. 이 때 이러한 bean들을 등록하는 방법은 간단합니다.

web.xml에 다음과 같이 ContextLoaderListner를 등록하면 됩니다.

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

그리고 contextConfigLocation <context-param/>을 사용해서 설정 파일의 위치를 알려줍니다.

<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'들을 담고 있는 컨테이너에 접근할 수 있습니다.

WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);

위의 메소드 ApplicationContext가 존재하지 않을 때, null을 반환합니다. 따라서 저것 대신에getRequiredWebApplicationContext() 을 사용하면 NullPointerException 대신에 ApplicationContext가 존재하지 않는 다는 예외를 던져줍니다.

앞으로 살펴볼 웹 프레임워크들에서 WebApplicationContext를 위와 같은 방법으로 얻은 다음 스프링이 관리하는 bean들을 얻을 수 있습니다. 하지만 대부분의 웹 프레임워크들은 스프링이 관리하는 bean을 얻기 위한 편리한 방법들을 제공해줌과 동시에 컨트롤러에서 의존성 삽입도 사용할 수 있도록 해줍니다.

'Spring > Chapter 15' 카테고리의 다른 글

15.3. JavaServer Faces  (2) 2007.12.27
15.2. Common configuration  (0) 2007.12.27
Integrating with other web frameworks  (0) 2007.12.27
top

Write a comment.