Mapping

민지킴·2021년 3월 30일
0

RequestMapping

@RequestMapping은 DefaultAnnotationHandlerMapping에서 컨트롤러를 선택할 때 대표적으로 사용하는 애노테이션이다.

url당 하나의 컨트롤러에 매핑되던 다른 핸들러 매핑과 달리 메서드 단위까지 세분화하여 적용할 수 있으며,
url 뿐 아니라 파라미터, 헤더 등 더욱 넓은 범위를 적용할 수 있다.

String [] value

URL 패턴을 지정하는 속성이다.
String 배열로 여러개를 지정할 수 있으며, ANT 스타일의 와일드카드를 사용할 수 있다.

@RequestMapping(value="/post")
@RequestMapping(value="/post.*")
@RequestMapping(value="/post/**/comment")
@RequestMapping(value={"/post", "/P"})

// {} 는 PathVariable 이라고 한다.
@RequestMapping(value="/post/{postId}")

// 2개는 동일하다!
@RequestMapping(value="/post")
@RequestMapping(value={"/post", "/post/", "/post.*"})

RequestMethod[] method

RequestMethod는 HTTP 메서드를 정의한 ENUM이다.
GET, POST, PUT, DELETE, OPTIONS, TRACE로 총 7개의 HTTP 메서드가 정의되어 있다.
@RequestMapping에 method를 명시하면 똑같은 URL이라도 다른 메서드로 매핑해줄 수 있다.
이로인해 컨트롤러에서 번거롭게 HTTP 메서드를 확인할 필요가 없다.

// url이 /post인 요청 중 GET 메서드인 경우 호출됨
@RequestMapping(value="/post", method=RequestMethod.GET)

// url이 /post인 요청 중 POST 메서드인 경우 호출됨
@RequestMapping(value="/post", method=RequestMethod.POST)

String[] params

요청 파라미터와 값으로도 구분할 수 있다.
String 배열로 여러개를 지정할 수 있으며, 아래와 같이 사용 가능하다.

// /post?useYn=Y 일 경우 호출됨
@RequestMapping(value="/post", params="useYn=Y")

// not equal도 가능
@RequestMapping(value="/post", params="useYn!=Y")

// 값에 상관없이 파라미터에 useYn이 있을 경우 호출됨
@RequestMapping(value="/post", parmas="useYn")

// 파라미터에 useYn이 없어야 호출됨
@RequestMapping(value="/post", params="!useYn")

PostMapping, GetMapping

PostMapping, GetMapping, PutMapping, DeleteMapping, DeleteMapping


@GetMapping(value="/post")@RequestMapping(value="/post", method=RequestMethod.GET)와 같다.

@PostMapping(value="/post")@RequestMapping(value="/post", method=RequestMethod.POST)와 같다.

다른것들도 방법이 같다.

profile
하루하루는 성실하게 인생 전체는 되는대로

0개의 댓글