• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

생성자 질문드립니다.

23.03.17 15:57 작성 조회수 280

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

public FrontControllerServletV5() {
    initHandlerMappingMap();
    initHandlerAdapters();
}

기본 생성자로 두개의 메서드를 실행하고있는데

FrontControllerServletV5.java 같은 경우에는

따로 인스턴스화 하지않고있는데

서블릿이라서 매핑해준 url패턴으로 접속하면 알아서 인스턴스화되면서 기본생성자가 실행되는건가요?

답변 1

답변을 작성해보세요.

1

안녕하세요. 김보겸님

FrontControllerServletV5는 서블릿 클래스입니다. 서블릿 클래스의 경우, 웹 애플리케이션 컨테이너가 알아서 인스턴스화를 관리해줍니다.

서블릿 컨테이너는 웹 애플리케이션을 실행할 때, 서블릿 클래스들을 찾아서 인스턴스화를 진행하고, 서블릿의 생명주기를 관리합니다. 이 때, 기본 생성자를 호출하여 인스턴스를 생성하게 됩니다. 생성자 내부에 있는 initHandlerMappingMap()와 initHandlerAdapters() 메서드도 함께 실행됩니다.

그리고 클라이언트로부터 요청이 들어오면, 해당 요청에 맞는 URL 패턴으로 매핑된 서블릿 인스턴스의 메서드를 호출하게 됩니다. 이렇게 서블릿 컨테이너가 인스턴스화와 생명주기를 관리하기 때문에, 개발자는 직접 인스턴스화를 하지 않아도 됩니다.

감사합니다.

김보겸님의 프로필

김보겸

질문자

2023.03.20

감사합니다^^