1. 개요

@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 어노테이션에 대해 알아볼거에요.

 

2. @RequestMapping 어노테이션이란?

   위의 표에서 설명을 한번 했지만, @RequestMapping 어노테이션은 URL을 컨트롤러의 메서드와 매핑할 때 사용하는 스프링 프레임워크의 어노테이션이에요. 

   클래스나 메서드 선언부에 @RequestMapping과 함께 URL을 명시하여 사용하죠.

   URL외에도 HTTP 요청 메서드나 헤더값에 따라 매핑되도록 -0=옵션을 제공하는데요..

   메서드 레벨에서 정의한 @RequestMapping은 타입 레벨에서 정의된 @RequestMapping의 옵션을 상속 받아요.

   참고로, 메서드 내에서 viewName을 별도로 설정하지 않으면 @RequestMapping의 path로 설정한 URL이 그대로 viewName으로 설정됩니다..
 
    * 간단하게 정리하면,
      클라이언트는 URL로 요청을 전송하고, 요청 URL을 어떤 메서드가 처리할지 여부를 결정하는 것이 바로 "@RequestMapping" 라고 할수 있어요.
 
 

3. @RequestMapping 이 사용하는 속성

 
이름 타입 설명
value String[] URL 값으로 매핑 조건을 부여 (default)
method RequetMethod[]

HTTP Request 메소드 값을 매핑 조건으로 부여
사용 가능한 메소드는 GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE (7개)

params String[] HTTP Request 파라미터를 매핑 조건으로 부여
consumes String[] 설정과 Content-Type request 헤더가 일치할 경우에만 URL이 호출됨
produces String[] 설정과 Accept request 헤더가 일치할 경우에만 URL이 호출됨