<aside> ➡️ 솔루션 Core의 Spring (core, webmvc) 3.2.5 를 기반으로 작성하였습니다 목차
</aside>
출처: Spring Docs
web.xml
<context-param>
<param-name>**contextConfigLocation**</param-name>
<param-value>
....
classpath:/config/**applicationContext-web.xml**
</param-value>
</context-param>
web.xml에 <context-param>을 정의하여, Servlet 전역에서 사용 가능한 파라미터 값으로 등록할 수 있습니다.
여기서 <param-name>의 contextConfigLocation는 Spring이 동작하기 위한 설정 파일의 위치를 알려주는 파라미터입니다. 해당 값으로 web 관련 설정을 관리하는 applicationContext-web.xml 을 등록합니다.
applicationContext-web.xml
<!-- ******************************************************************* -->
<!-- * URL CONTROLLER MAPPING * -->
<!-- ******************************************************************* -->
<!--
for spring mvc handlerMapping..
handlerMapping connect each controller.
-->
<import resource="classpath:/config/web/**webContext-controllers.xml**" /> **3-1) Bean 관련 설정 xml**
<bean id="urlMapping" class="org.springframework.web.servlet.handler.**SimpleUrlHandlerMapping**">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor"/> **사용자 언어별 i18n(국제화) 다국어 처리**
....
</list>
</property>
<property name="mappings">
<!-- property -->
<bean class="org.springframework.beans.factory.config.**PropertiesFactoryBean**">
<property name="locations">
<list>
<value>classpath:/config/web/**webContext-controllers.properties**</value> **3) 매핑 URL 정의 properties**
....
</list>
</property>
</bean>
**webContext-controllers.properties 3) 매핑 URL 정의 properties**
#------------------------------------------------------------------------------
# Main
#------------------------------------------------------------------------------
/main/main.do=mainController
/mobile/main.do=mobileController
#------------------------------------------------------------------------------
# Auth
#------------------------------------------------------------------------------
/auth/login/loginView.do=loginController
/auth/login/login.do=loginController
/auth/login/checkSessionKey.do=loginController
/auth/login/doAutoLogin.do=loginController
....
3-1. webContext-controllers.xml 3-1) Bean 관련 설정 xml
<!-- for parameter multiaction -->
URL에서, 하단의 Resolver의 <value>에 해당 하는 값으로 메서드에 매핑하는 Spring 객체
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>method</value>
</property>
</bean>
<!--
**************************************************************************
* DEFAULT Controller
**************************************************************************
-->
<bean name="multiActionFormController" class="destiny.framework.web.mvc.MultiActionFormController" autowire="byName" >
</bean>
<!--
**************************************************************************
* COMMON Controller
**************************************************************************
-->
webContext-controllers.properties에서 정의한 각각의 (요청↔컨트롤러) 매핑을 MultiActionController를 이용하면, 여러 요청명에 대해 한 개의 컨트롤러에 구현된 각 메서드로 처리할 수 있어 편리합니다.
ParameterMethodNameResolver 에서 <value>method</value> 와 같이, URL에서 파싱할 명칭을 지정하고,
*String methodName = this.methodNameResolver.getHandlerMethodName(request);*
과 같이 request 에서 메서드 명칭을 추출해 사용한다.