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

김민재님의 프로필 이미지
김민재

작성한 질문수

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

스프링 MVC - 컨트롤러 통합

@Controller 질문있습니다.

작성

·

252

0

@Controller가 붙으면 로직을 수행하는 컨트롤러가 되고 이 컨트롤러에서 수행되는 로직은 요청과 동일한 @RequestMapping이 붙은 메소드가 실행된다 라고 생각하면 되는건가요? @Controller가 붙은 클래스가 컨트롤러가되서 HandlerMapping에 등록된 후 내부적으로 @RequestMapping으로 구분을 하는건지 아니면 각각의 메소드가 컨트롤러가 되서 HandlerMapping에 등록되는건지 궁금합니다.

답변 2

1

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

안녕하세요. 김민재님

네, 맞습니다. Spring MVC에서 @Controller 어노테이션이 붙은 클래스는 웹 요청을 처리하는 컨트롤러로 사용됩니다. 이 컨트롤러 내의 메서드들은 @RequestMapping (또는 그 변형들인 @GetMapping, @PostMapping 등) 어노테이션을 통해 특정 HTTP 요청과 연결됩니다.

HandlerMapping: Spring은 @Controller 어노테이션이 달린 클래스를 컨트롤러로 등록하고, 각 컨트롤러 내의 @RequestMapping 어노테이션이 달린 메서드를 통해 요청을 적절한 메서드에 매핑합니다. 이 과정은 내부적으로 HandlerMapping을 통해 이루어집니다.

쉽게 이야기해서 @RequestMapping을 사용하는 경우 메서드 단위로 매핑이 되지만, 실제 호출되는 객체는 @Controller로 선언한 객체가 사용되는 것이 맞습니다. 해당 객체의 매핑된 메서드가 호출됩니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

김민재님께서 문의하신 @Controller@RequestMapping의 동작 방식에 대해 궁금해 하시는 부분에 대해, 강사님께서 이미 답변해주신 내용이 있습니다. 해당 내용은 @Controller가 붙은 클래스가 컨트롤러 역할을 한다는 것과 @RequestMapping이 붙은 메소드가 요청 URL에 매핑되어 실행된다는 것을 설명하고 있습니다. 자세한 내용은 아래의 링크를 통해 확인하실 수 있습니다.

이 링크들을 참조하시면 이해에 도움이 될 것입니다.

김민재님의 프로필 이미지
김민재

작성한 질문수

질문하기