인프런 커뮤니티 질문&답변

solog152님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

스프링 MVC - 컨트롤러 통합

@RequestMapping 핸들러 매핑 질문입니다.

작성

·

186

0

영상속에서는 핸들러 매핑 우선순위가

  1. @RequestMapping

  2. @Component로 스프링 빈 이름으로 핸들러 찾는다


    라고 적혀있는데


    핸들러 매핑이 컨트롤러를 찾는 개념 아닌가요?
    찾은 핸들러를 어댑터에서 가능한지 확인하고 핸들러 호출


    이라고 생각했는데
    @RequestMapping은 단독으로 쓰면 매핑이 안되니까
    핸들러 매핑이 아닌 다른거 아닌가요?

     

     

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. solog152님

영상에서 설명하는 내용은 스프링 MVC에서 핸들러 매핑(HandlerMapping)의 우선순위를 설명하는 것입니다. 핸들러 매핑은 들어오는 요청(request)을 처리할 적절한 컨트롤러(Controller)를 찾는 역할을 합니다.

  1. @RequestMapping: 이 애노테이션은 메서드 레벨 또는 클래스 레벨에 사용되어 해당 메서드 또는 클래스가 처리할 URL 패턴을 지정합니다. 핸들러 매핑은 @RequestMapping이 지정된 메서드를 찾아 해당 요청을 처리할 수 있는 핸들러로 간주합니다.

  2. @Component로 스프링 빈 이름으로 핸들러 찾기: 이는 스프링의 컴포넌트 스캔 기능을 통해 @Component 애노테이션이 붙은 클래스를 스프링 빈으로 등록하고, 해당 빈의 이름을 기반으로 핸들러를 찾는 방식입니다.

따라서 @RequestMapping은 핸들러 매핑에 직접적으로 관여하는 애노테이션입니다. 하지만 @RequestMapping을 사용하기 위해서는 해당 클래스가 컨트롤러로 인식되어야 합니다. 이를 위해 클래스에 @Controller 또는 @RestController와 같은 애노테이션을 붙여 컨트롤러로 지정해야 합니다.

핸들러 어댑터(HandlerAdapter)는 핸들러 매핑이 찾은 핸들러를 실제로 호출하고 실행하는 역할을 합니다. 핸들러 어댑터는 해당 핸들러의 메서드를 호출하고, 필요한 파라미터를 바인딩하며, 반환값을 처리합니다.

따라서 영상에서 설명하는 내용은 핸들러 매핑의 우선순위를 나타내는 것이며, @RequestMapping은 핸들러 매핑에 직접적으로 관여하는 애노테이션입니다. 핸들러 어댑터는 매핑된 핸들러를 실제로 호출하고 실행하는 역할을 담당합니다.

감사합니다.

solog152님의 프로필 이미지

작성한 질문수

질문하기