단계별 도입
/WEB-INF/views/new-form.jsp
물리이름new-form
논리이름@Component 를 호출하려면 두가지가 필요 (스프링이 대부분 구현)
스프링 부트가 자주 등록하는 핸들러매핑 / 핸들러어댑터 / 뷰 리졸버
순서 우선순위별
HandlerMapping
RequestMappingHandlerMapping : 애노테이션 기반 컨트롤러인 @RequestMapping 에서 사용
BeanNameUrlHandlerMapping : 스프링 빈의 이름으로 핸들러 찾음
HandlerAdapter
ViewResolver
애노테이션 기반 @RequestMapping
- RequestMappingHandlerMapping
- RequestMappingHandlerAdapter
@Controller
스프링 빈으로 자동 등록 (내부에 @Component 애노테이션이 포함 -> 컴포넌트 스캔 대상)
@RequestMapping
요청 정보를 매핑
💡 RequestMapping / HandlerMapping은 @RequestMapping , @Controller가 클래스 레벨에 붙어 있는 경우 매핑 정보로 인식
또는
또는
+) 리턴 값이 String 일 때
@Controller는 뷰 이름으로 인식 -> 뷰를 찾고 랜더링
@RestController는 HTTP 메시지 바디에 그대로 입력