@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 |