Backend/spring

@RequestMapping @PostMapping @GetMapping 차이

dddzr 2022. 10. 9. 14:07

@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 

 

List, Array 형태 데이터 파라미터로 Spring 서버와 ajax 통신

일반적인 방법으로 arr전송시 에러가 발생. (ajax에서 controller로 넘어가기 전에 데이터 형태가 맞지않다는 에러) Controller 파리미터 부분에 @RequestParam(value="CREATEDDATAS[]") String[] CREATEDDATAS @R..

sumni.tistory.com

 

@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