B2 Setup with Spring #1 – 기본 설정 및 초기 페이지 로딩

By | Y2015Y2015-12M-ȭD

1. Source Loading -> Tomcat이 web.xml 을 최초 로드
2. web.xml
2.1각종 filter load -> Spring Configuration Load
* DispatcherServlet 역할을 찾아볼 것.여러개의 DispatcherServlet 이 로딩 가능하며, load-on-startup 값으로 순서 지정도 가능함(precedent check), servlet mapping 과 연동되므로 front-end controller 역할을 한다.

<servlet>
	<servlet-name>hello-dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/config/spring/webmvc-config.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

2.2. dispatcher 의 URI 지정

	<servlet-mapping>
		<servlet-name>hello-dispatcher</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

2.3. backend 용 dispatcher (ContextLoaderListener에 대해 찾아볼 것)

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

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/config/spring/applicationContext*.xml</param-value>	
	</context-param>

3. web.xml 에 기술되어 있는 Dispatcher-servlet class, listener-class 의 설정 경로를 찾아서 파일을 로드(이 경우에는 /WEB-INF/config/spring/webmvc-config.xml, /WEB-INF/config/spring/applicationContext*.xml)
3.1. webmvc-config.xml
아래 부분의 코드를 보고 해당 패키지의 annotation 을 모두 읽어들인다.

    
  	<context:component-scan base-package="com.blackboard.consulting.*" >
  	</context:component-scan>
  	<mvc:annotation-driven/>

외부 js 나 기타 웹 리소스를 불러들이도록 허용

  	<mvc:default-servlet-handler/>

4. webmvc-config.xml 에 따라 com.blackboard.consulting 패키지 내의 모든 annotation 을 load 하였으므로, 사용자가 “/” URL에 접근 시, @RequestMapping annotation 을 찾아서 해당 내용을 수행하게 된다.
예를 들어, com.blackboard.consulting.web 패키지 내의 IndexController.java 소스를 보면 다음과 같은 코드가 있다.

//index page
	@RequestMapping(value="/index")
    public String index(
    		@RequestParam Map<String, Object> param...

여기에 따라, /index 로 접근한 사용자는 이 @RequestMapping annotation에 따라 index 클래스(Controller Class)에 진입하게 된다.
처리를 마치고 index 클래스는 String 값을 반환하게 되는데, 그 반환 코드는 다음과 같다.

	    model.addAttribute("resultMap", resultMap);
//	    model.addAttribute("resultList", resultList);
	    
    	return "index";
    }

여기에서 반환되는 index 는 webmvc-config.xml 의 다음 설정에 따라

    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

/WEB-INF/views/ 아래의 모든 jsp 파일을 찾게 되고, return 값이 index 였으므로, index.jsp 를 찾게 된다.

3,469 total views, 1 views today

댓글 남기기