✅ 요청 매핑 어노테이션 (@RequestMapping, @GetMapping 등)
어노테이션 |
설명 |
요청 방식 |
@RequestMapping |
모든 HTTP 요청 처리 가능 (GET, POST 등) |
전부 가능 |
@GetMapping |
데이터 조회 |
GET |
@PostMapping |
데이터 생성/등록 |
POST |
@PutMapping |
데이터 수정 |
PUT |
@DeleteMapping |
데이터 삭제 |
DELETE |
예시:
@GetMapping("/members")
public String getMembers() {
return "조회 완료";
}
@PostMapping("/members")
public String createMember(@RequestBody MemberDto dto) {
return "등록 완료";
}
✅ 요청 파라미터 바인딩 어노테이션
어노테이션 |
설명 |
예시 URL |
@PathVariable |
URL 경로에 있는 값 추출 |
/member/10 |
@RequestParam |
쿼리 스트링 또는 폼 파라미터 |
/member?id=10 |
@RequestBody |
JSON 본문 전체를 객체로 바인딩 |
(POST/PUT 요청 JSON) |
예시:
🔹 @PathVariable
@GetMapping("/member/{id}")
public String getMember(@PathVariable Long id) {
return "ID: " + id;
}
🔹 @RequestParam
@GetMapping("/search")
public String search(@RequestParam String keyword) {
return "검색어: " + keyword;
}
🔹 @RequestBody
@PostMapping("/product")
public String saveProduct(@RequestBody ProductDto dto) {
return "상품명: " + dto.getName();
}
🧠 언제 어떤 걸 써야 할까?
상황 |
사용 어노테이션 |
URL 안에 값이 포함됨 (/user/123 ) |
@PathVariable |
주소 뒤에 ?key=value 로 값 전달 |
@RequestParam |
JSON으로 전체 객체 전송 |
@RequestBody |
💬 혼합 사용 예시
@PostMapping("/product/{id}")
public String update(
@PathVariable Long id,
@RequestParam String token,
@RequestBody ProductDto dto
) {
return "ID=" + id + ", token=" + token + ", name=" + dto.getName();
}