본문 바로가기

Web Programming

ApplicationContext 의 설정

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringMVC</display-name>
  <servlet>
   <servlet-name>dispatcher</servlet-name>
   <servlet-class>
    org.springframework.web.servlet.DispatcherServlet
   </servlet-class>
  </servlet>
 
  <servlet-mapping>
   <servlet-name>dispatcher</servlet-name>
   <url-pattern> *.htm </url-pattern>
  </servlet-mapping>
</web-app>


web.xml 파일을 보면 위와 같다. 기본적으로 DispatcherServlet은 [서블릿이름]-servlet.xml 파일로부터 스프링 정보를 읽어오기 때문에 현재 경로에서 dispatcher-servlet.xml 파일로 부터 설정 정보를 읽어오게 된다. DispatcherServlet 마다 각각 원하는 설정 정보를 읽어 오도록 할 수도 있다. 때로는 공통의 빈을 필요로 하는 경우도 있는데 이런경우에는 ContextLoaderListener를 사용하여 공통으로 사용될 빈을 설정할 수 있게 된다.

아래 예제는 두개의 서블릿을 만들어서 저마다 다른 뷰를 리턴하도록 해줘봤다.

<servlet>
   <servlet-name>goodbye</servlet-name>
   <servlet-class>
    org.springframework.web.servlet.DispatcherServlet
   </servlet-class>
   <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/goodbye.xml</param-value>
   </init-param>
  </servlet>
  <servlet-mapping>
   <servlet-name>goodbye</servlet-name>
   <url-pattern> /goodbye/* </url-pattern>
  </servlet-mapping>
</servlet>


이렇게 더 추가하면 goodbye라는 이름을 가진 DispatcherServlet이 생성이 된다. 자동으로 ApplicationContext를 설정하던 것과는 달리 상대 경로를 사용하여 특성 xml 파일을 읽어오도록 했다. 그럼 다음으로 goodbye.xml 을 살펴도록 하자.


<bean id="beanNameUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
 <bean name="/goodbye" class="com.HelloWorld.controller.GoodbyeController"/>
 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/view/"/>
  <property name="suffix" value=".jsp"/>
 </bean>
</beans>


또다른 컨트롤러를 매핑하도록 한다. 미리 설정해 놓은 view의 이름과 같은 jsp 페이지를 반환하도록 한다.