1. 상위문서
2. 개요
@MVC에서 사용하는 주요 어노테이션은 아래와 같아요.
이름 | 설명 |
@Controller | 해당 클래스가 Controller임을 나타내기 위한 어노테이션 |
@RequestMapping | 요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션 |
@RequestParam | Controller 메소드의 파라미터와 웹요청 파라미터와 맵핑하기 위한 어노테이션 |
@ModelAttribute | Controller 메소드의 파라미터나 리턴값을 Model 객체와 바인딩하기 위한 어노테이션 |
@SessionAttributes | Model 객체를 세션에 저장하고 사용하기 위한 어노테이션 |
@RequestPart | Multipart 요청의 경우, 웹요청 파라미터와 맵핑가능한 어노테이션(egov 3.0, Spring 3.1.x부터 추가) |
@CommandMap | Controller메소드의 파라미터를 Map형태로 받을 때 웹요청 파라미터와 맵핑하기 위한 어노테이션(egov 3.0부터 추가) |
@ControllerAdvice | Controller를 보조하는 어노테이션으로 Controller에서 쓰이는 공통기능들을 모듈화하여 전역으로 쓰기 위한 어노테이션(egov 3.0, Spring 3.2.X부터 추가) |
그 중에 오늘은 @RequestMapping 어노테이션에 대해 알아볼거에요.
3. @RequestMapping 어노테이션이란?
위의 표에서 설명을 한번 했지만, @RequestMapping 어노테이션은 URL을 컨트롤러의 메서드와 매핑할 때 사용하는 스프링 프레임워크의 어노테이션이에요.
클래스나 메서드 선언부에 @RequestMapping과 함께 URL을 명시하여 사용하죠.
URL외에도 HTTP 요청 메서드나 헤더값에 따라 매핑되도록 -0=옵션을 제공하는데요. 메서드 레벨에서 정의한 @RequestMapping은 타입 레벨에서 정의된 @RequestMapping의 옵션을 상속 받아요.
참고로, 메서드 내에서 viewName을 별도로 설정하지 않으면 @RequestMapping의 path로 설정한 URL이 그대로 viewName으로 설정됩니다..
간단하게 정리하면, 클라이언트는 URL로 요청을 전송하고, 요청 URL을 어떤 메서드가 처리할지 여부를 결정하는 것이 바로 "@RequestMapping" 라고 할수 있어요.
4. @RequestMapping 이 사용하는 속성
이름 | 타입 | 설명 |
value | String[] | URL 값으로 매핑 조건을 부여 (default) |
method | RequetMethod[] |
HTTP Request 메소드 값을 매핑 조건으로 부여 |
params | String[] | HTTP Request 파라미터를 매핑 조건으로 부여 |
consumes | String[] | 설정과 Content-Type request 헤더가 일치할 경우에만 URL이 호출됨 |
produces | String[] | 설정과 Accept request 헤더가 일치할 경우에만 URL이 호출됨 |