@GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping 어노테이션은 스프링 4.3부터 등장
기존의 RequetMapping과의 차이는?
1. 코드의 간소화
method부분 생략가능.
requestMapping도 method를 생략하여 쓸 수 있고 생략하면 get, post방식을 둘다 처리해줌
2. url의 중복사용
url로 (방식이 다른)여러개 매핑이 가능
@RequestMapping 방식
@RequestMapping(value = "/url}", method = RequestMethod.GET)
@PostMapping @GetMapping
@getMapping("/url")
@PostMapping("/url")
구글링해봤을 때 아래 두가지 이유만 나옴
근데 내가 알아본 이유는 3번 때문
3. List/ Array 형태의 데이터 전송
https://sumni.tistory.com/20?category=975176
@requestMapping에서는 List형태의 데이터를 바로 보낼수 없었다
/**
* @throws IOException
*/
@RequestMapping(value = "/insertData", method = RequestMethod.POST)
@ResponseBody
public HashMap<String, String> insertData(@RequestBody Map<String, Object> param, HttpServletRequest request) throws Exception {
HashMap<String, String> result = new HashMap<String, String>();
try {
messageService.insertData((List<Map<String, Object>>) param.get("data"));
result.put("result", "Success");
} catch (Exception e) {
result.put("result", "Error");
result.put("message", e.getMessage());
}
return result;
}
@PostMapping은 바로 전송가능
@PostMapping("/insertData")
public Map<String, Object> insertData(@RequestBody List<MessageDefinition> messageDef, HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> result = new HashMap<String, Object>();
try {
messageService.insertData(messageDef);
result.put("result", "Success");
} catch (Exception e) {
result.put("result", "Error");
result.put("message", e.getMessage());
}
return result;
}
'Backend > spring' 카테고리의 다른 글
spring boot 개발환경 설정(spring initializr) (0) | 2023.08.18 |
---|---|
[spring] @RequestParam @RequestBody 차이점 (0) | 2023.05.25 |
spring bean 주입 방법 (0) | 2023.05.10 |
spring logback (0) | 2022.06.10 |
Spring 구조 / 구성요소 (0) | 2021.10.04 |