[Spring] Tomcat Server 기동 시 Listener와 Spring IoC Container의 초기화 과정

2024. 10. 10. 16:19·Spring

Tomcat 서버와 리스너 개요

Tomcat 서버가 켜지면 먼저 서블릿 컨테이너가 동작한다. 이때 웹 애플리케이션이 초기화되고, 설정 파일(web.xml 등)에 정의된 리스너가 등록돼 동작을 시작한다. 리스너는 서버의 상태 변화(시작, 종료, 세션 생성 등)를 감지하는 역할을 한다.

Listener와 Spring IoC 컨테이너 초기화

ContextLoaderListener가 web.xml에 등록돼 있으면 톰캣이 켜질 때 이 리스너가 동작해서 Spring의 ApplicationContext.xml를 초기화한다. 이 과정에서 Spring의 IoC 컨테이너가 생성된다.

Listener는 주로 ApplicationContext 를 설정하고, 필요한 Bean들을 로딩한다. Spring Application은 이때 XML 설정 파일이나 어노테이션을 기반으로 IoC 컨테이너가 구성된다.

Spring 컨테이너의 Bean 등록 및 의존성 주입

Listener 가 Spring의 IoC 컨테이너를 초기화하면 설정된  Bean들이 메모리에 로드된다. 즉, Service나 DAO 같은 Bean들이 IoC 컨테이너에 등록되고, 의존성 주입(DI)이 이루어진다. 이 과정에서 @Component, @Service, @Repository로 정의된 클래스들이 Spring 컨테이너 안에서 객체로 생성된다.

DispatcherServlet과 Controller의 동작 흐름

의존성 주입을 통해 Service와 DAO가 연결되고, 모든 객체가 준비되면 이제 DispatcherServlet이 동작하면서 Client로부터의 HTTP 요청을 받는다. 요청이 들어오면 Spring의 컨트롤러(@Controller)가 동작해 필요한 서비스를 주입받아 비즈니스 로직을 처리하게 된다.

이때 서비스 객체는 이미 IoC 컨테이너에 등록돼 있어서 컨트롤러가 @Autowired 등을 통해 이를 주입받아 사용한다.

리스너와 IoC 컨테이너의 역할

Tomcat 서버가 기동하면서 리스너가 Spring 컨테이너를 초기화하고, 그 컨테이너에서 관리하는 서비스들이 이후에 컨트롤러에 의해 사용된다는 흐름을 이해하면 Spring의 구조를 더 쉽게 파악할 수 있다.

'Spring' 카테고리의 다른 글

[Spring] AOP 관점지향 프로그래밍  (1) 2024.10.15
[Spring] Ajax를 이용한 비동기 처리와 아이디 중복검사 구현  (0) 2024.10.14
[Spring] 2-Layered 아키텍처 정리  (0) 2024.10.10
[Spring] 스테레오타입 어노테이션과 @RequestMapping  (0) 2024.10.09
[Spring] ViewResolver  (1) 2024.10.09
'Spring' 카테고리의 다른 글
  • [Spring] AOP 관점지향 프로그래밍
  • [Spring] Ajax를 이용한 비동기 처리와 아이디 중복검사 구현
  • [Spring] 2-Layered 아키텍처 정리
  • [Spring] 스테레오타입 어노테이션과 @RequestMapping
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    DispatcherServlet
    티스토리챌린지
    html
    @repository
    오블완
    정처기 실기
    생성자
    오버로딩
    MVC
    수제비
    Di
    객체지향
    2-layered 아키텍처
    상속
    멘토씨리즈 자바
    recoverabledataaccessexception
    정처기
    Spring
    java
    스프링 프레임워크
    @service
    정보처리기사 실기
    jsp
    aop
    codeup 4891 : 행복
    @Component
    ViewResolver
    정보처리기사
    이벤트 스케줄러
    어노테이션
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[Spring] Tomcat Server 기동 시 Listener와 Spring IoC Container의 초기화 과정
상단으로

티스토리툴바