개발 무지렁이

[Spring] front Controller: DispatcherServlet(in web.xml)과 Spring MVC bean(in SPRING BEAN 설정문서.xml) 본문

Backend/스프링

[Spring] front Controller: DispatcherServlet(in web.xml)과 Spring MVC bean(in SPRING BEAN 설정문서.xml)

Gaejirang-e 2023. 5. 2. 22:16

Spring MVC 컴포넌트간 흐름



요청(request)만 보내면 나머지는 Spring이 알아서 한다.


(1) web.xml문서에 DispatcherServlet을 등록한다.(Servlet 생성 -> 🪹 Spring container생성)
(2) 🌱 SPRING BEAN 설정문서기본위치이름을 적는다.
(/WEB-INF/springConfig/[서블릿이름]-servlet.xml or servlet-context.xml)

⚠️. spring은 🌱 SPRING BEAN 설정문서로딩해서 필요로하는 객체들의 lifeCycle을 관리한다.
⚠️. 🪹 Spring containerHandler Mapping 객체, Controller 객체, ViewResolver 객체를 올려준다.
  (bean으로 등록된다.)


🚀. 진입점 Controller(front controller) 등록

[web.xml]

  <!-- 생성 -->
  <servlet>
    <servlet-name>dispatcher</servlet-name> <!-- 이름 변경 가능 -->
    <servlet-class>
      org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation></param-name>
        <param-value>
          /WEB-INF/springConfig/dispatcher-servlet.xml <!-- 기본 위치 변경 및 추가 가능 -->
        </param-value>  
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- 호출, Handler Mapping -->
  <servlet-mapping>
       <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern> <!-- 쩜두(관례적) -->
  </servlet-mapping>  

🚀. ViewResolver 등록

[servlet-context.xml]

  <beans:bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
        <beans:property name="order" value="2" />
  </beans:bean>  
Comments