본문 바로가기

[MVC] 요청 매핑

@cayman0312025. 12. 2. 11:39

@RequestMapping

@RequestMapping("/hello-basic")라면

  • /hello-basic url 호출이 오면 이 메서드가 실행되도록 매핑하는것.
  • 대부분의 속성을 배열[]로 제공하므로 다중 설정이 가능하다.
  • @RequestMapping에 Method 속성으로 HTTP 메서드를 지정하지 않으면 HTTP 메서드와 무관하게 호출이 가능하다. 즉, GET, POST, PUT, PATCH, DELETE 가리지 않고 호출 가능.
/**
 * method 특정 HTTP 메서드 요청만 허용
 * GET, HEAD, POST, PUT, PATCH, DELETE
 */
@RequestMapping(value = "/mapping-get-v1", method = RequestMethod.GET)
public String mappingGetV1() {
 log.info("mappingGetV1");
 return "ok";
}

HTTP 메서드 매핑 축약

@RequestMapping을 사용하는 것보다 http 메서드를 축약한 애노테이션을 사용하는 것이 더 직관적이고 사용하기도 편할것이다. (메서드를 하나하나 지정하지 않아도됨)

/**
 * 편리한 축약 애노테이션 
 * @GetMapping
 * @PostMapping
 * @PutMapping
 * @DeleteMapping
 * @PatchMapping
 */
@GetMapping(value = "/mapping-get-v2")
public String mappingGetV2() {
 log.info("mapping-get-v2");
 return "ok"

PathVariable(경로 변수) 사용

/**
* PathVariable 사용
* 변수명이 같으면 생략 가능
* @PathVariable("userId") String userId -> @PathVariable String userId
*/
@GetMapping("/mapping/{userId}")
public String mappingPath(@PathVariable("userId") String data) {
log.info("mappingPath userId={}", data);
return "ok";
}

최근에는 리소스 경로에 직접 식별자를 넣는 스타일을 선호한다.

  • mapping/userA
  • users/1
  • @RequestMapping는 URL 경로를 템플릿화 할 수 있으므로 @PathVariable을 사용하면 매칭되는 부분을 편리하게 조회가 가능하다.
  • 이 때, @PathVariable과 경로 이름과 파라미터 이름이 같으면 생략이 가능하다.
/**
 * PathVariable 사용 다중
 */
@GetMapping("/mapping/users/{userId}/orders/{orderId}")
public String mappingPath(@PathVariable String userId, @PathVariable Long
orderId) {
 log.info("mappingPath userId={}, orderId={}", userId, orderId);
 return "ok";
}

위 코드와 같이 다중 파라미터도 사용이 가능하다.

'Develop > Spring' 카테고리의 다른 글

[JPA] 변경 감지와 병합(merge)  (0) 2025.12.02
[JPA] 도메인 분석 설계  (0) 2025.12.02
[MVC] 핸들러 매핑과 핸들러 어댑터  (0) 2025.12.02
[MVC] http 응답  (0) 2025.12.02
[MVC] Http 요청 파라미터  (0) 2025.12.02
cayman031
@cayman031 :: 그누로그

목차