땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • ㅗ
  • I
  • 이것이 리눅스다 with Rocky Linux9
  • D
  • E

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

[Spring] 프로그램이 실행되는 흐름 읽기
Backend/Spring

[Spring] 프로그램이 실행되는 흐름 읽기

2022. 10. 21. 10:34

web.xml

비Web 정보(root-context.xml)

model, aop, db, ...

 

Web 정보(servlet-context.xml)

servlet, controller, annotation, filter, interceptor, viewController, ...

 

 

 

 

실행 순서

1. 웹 어플리케이션이 실행되면 Tomcat(WAS)에 의해 web.xml이 loading.
2. web.xml에 등록되어 있는 ContextLoaderListener (Java Class)가 생성. ContextLoaderListener class는
ServletContextListener interface를 구현하고 있으며, ApplicationContext를 생성하는 역할을 수행.
3. 생성된 ContextLoaderListener는 root-context.xml을 loading.
4. root-context.xml에 등록되어 있는 Spring Container가 구동. 이 때 개발자가 작한 Business Logic(Service)에 대한 부분과 Database Logic(DAO), VO 객체들이 생성.
5. Client로 부터 요청(request)가 들어옴.
6. DispatcherServlet(Servlet)이 생성. DispatcherServlet은 FrontController의 역할을 수행.
Client로부터 요청 온 메시지를 분석하여 알맞은 PageController에게 전달하고 응답을 받아 요청에 따른 응답을 어떻게 할 지 결정. 실질적인 작업은 PageController에서 이루어 진다. 이러한 클래스들을 HandlerMapping, ViewResolver Class라고 함.
7. DispatcherServlet은 servlet-context.xml을 loading.
8. 두번째 Spring Container가 구동되며 응답에 맞는 PageController들이 동작. 이 때 첫번째 Spring Container가 구동되면서생성된 DAO, VO, Service 클래스들과 협업하여 알맞은 작업을 처리.

 

 

'Backend > Spring' 카테고리의 다른 글

[Spring] Lombok  (0) 2022.10.27
[Spring] MyBatis와 MyBatis-Spring 적용  (0) 2022.10.21
[Spring] Spring MVC 패턴 적용  (0) 2022.10.21
[Spring] Spring UTF8 한글 설정  (0) 2022.10.21
[Spring] Interceptor에 대해  (0) 2022.10.21
    'Backend/Spring' 카테고리의 다른 글
    • [Spring] Lombok
    • [Spring] MyBatis와 MyBatis-Spring 적용
    • [Spring] Spring MVC 패턴 적용
    • [Spring] Spring UTF8 한글 설정
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바