Search
Duplicate
📒

[Spring Study] 04. 스프링 MVC 흐름

상태
수정중
수업
Spring Study
주제
기본개념
연관 노트
3 more properties
참고

Spring 실행순서

NOTE
처음 설정로딩 (1~4)
요청 들어와서 DispatcherServlet생성됨 (5)
이후는 우리가 아는 MVC 동작

1. Loading - 웹 어플리케이션이 실행되면 Tomcat(WAS)에 의해 web.xml 로딩

NOTE
ServeltContainer (ex : 톰캣서버 ) → URL 확인 → 요청을 처리할 Setvlet을 찾아 실행
web.xml : 각종 설정을 위한 파일

2. Create - web.xml에 등록되어 있는 ContextLoadaerListener 생성.

NOTE
Servlet Container가 파일을 읽어서 구동될 때, ContextLoaderLIstener가 자동으로 메모리에 생성된다 (Pre-Loading)
ContextLoaderListener 클래스ApplicationContext (root-context)를 생성하는 역할을 수행한다
ContextLoaderListener 클래스Servlet의 생명주기를 관리해줌
Servlet을 사용하는 시점에 ServletContextApllicationContext 등록
Servlet이 종됼되는 시점에 ApplicationContext삭제
web.xml 코드

3. ContextLoaderListener가 ApplicationContext(root-context.xml)을 로딩

NOTE
ContextLoaderListener 객체는 applicationContext.xml (root-context.xml) 파일을 로딩하여 스프링 컨테이너를 구동하는데 이를 Root 컨테이너라고 한다.

4. root-context.xml에 등록되어 있는 Spring Container를 구동

NOTE
root-context.xml에는 주로 view 지원을 제외한 공통 bean을 설정
web과 관련된 bean들은 등록해주지 않음 (ex Controller)
service, dao
root-context.xml 코드 ( web에 관련된걸 모두 설정, DispathcerServlet에 전달됨 )

5. 클라이언트로부터 웹 어플리케이션 요청이 오고 Servlet-context 로딩

NOTE
최초의 클라이언트 요청에 의해 DispathcerServlet이 생성됨
DispatcherServlet가 servlet-context.xml 로딩
WEB-INF/confing 폴더의 servlet-context.xml 파일을 로딩하여 두번째 스프링 컨테이너를 구동한다
servlet-context.xml
주로 웹과 관련된것을 로드함 → Controller, VIewResolver ..
servlet-context.xml 코드

6. 두번째 Spring Container 구동되며 응답에 맞는 Controller들이 동작

NOTE
FrontController의 MVC동작이 진행됨 → [Spring Study] 04-4. FrontController V5(Adapter 추가)