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

lch9502님의 프로필 이미지
lch9502

작성한 질문수

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

스프링 MVC - 시작하기

핸들러 정보 채우는 방식?

작성

·

336

5

안녕하세요, 

 

이전에 V3, V4 등에서 핸들러 정보를 Map에 직접 저장했었습니다.

그러면 스프링 MVC 구조에서 핸들러 정보가 어떻게 채워지게 되나요??

 

감사합니다.

 

---

질문이 애매한 것 같아서 추가합니다. ( ~ 4:49)

/springmvc/v1/members/new-form HTTP 요청을 받은 후 어떻게 SpringMemberFormControllerV1 핸들러(컨트롤러)를 찾아올 수 있는지 정확하게 모르겠습니다.

그냥 클래스 레벨에 @Controller가 붙어있는 모든 클래스를 찾아서 그 안에 @RequestMapping으로 요청 받은 url과 동일한게 있다면 그 때 SpringMemberFormControllerV1 컨트롤러를 getHandelr()에서 반환하는 것인가요?

 

갑자기 애노테이션 기반 컨트롤러를 사용해서 이전 내용과 이어지질 않는 기분입니다.ㅠㅠ

답변 1

1

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

안녕하세요. lch9502님

스프링MVC는 애플리케이션 로딩 시점에 @Controller가 붙어있는 모든 클래스를 찾아서 그 안에 @RequestMapping의 정보를 모두 보관하고 있습니다. 그래서 어떤 URL이 호출되면 어떤 컨트롤러의 메서드를 호출해야 하는지 처음부터 알고 있는 것이지요.

이후에 요청이 오면 URL 정보를 매칭해서 실제 컨트롤러의 메서드를 호출하게 됩니다.

감사합니다.

lch9502님의 프로필 이미지
lch9502
질문자

답변 감사합니다.

그러면 애플리케이션 로딩 시점에 RequestMappingHandlerMapping이 @Controller가 붙어있는 클래스에서 @RequestMapping 정보를 모두 찾아서 보관해주고 getHandler로 url을 사용해서 매칭되는 @RequestMapping이 존재하는 클래스를 반환해준다고 이해하면 될까요??

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

네 맞습니다^^

lch9502님의 프로필 이미지
lch9502

작성한 질문수

질문하기