Spring

프로젝트준비과정 - @PostMapping / @GetMapping

chandlerxx 2023. 11. 27. 21:45

개별프로젝트로 "나만의 블로그"를 만들어볼까 합니다. 가장 무난하기도 하고 참고할만한 글들이 많은 것 같아서요. 

 

먼저 블로그 글을 등록할때 쓰이는 @PostMapping과 블로그 게시글을 확인할때 쓰이는 @GetMapping에 대해 알아보겠습니다.

 

1. @PostMapping


@PostMapping annotation in Spring MVC framework is a powerful tool for handling the HTTP POST requests in your RESTful web services. It maps specific URLs to handler methods allowing you to receive and process data submitted through POST requests. The @PostMapping annotation is a Spring annotation that is used to map HTTP POST requests onto specific handler methods. It is a shortcut for @RequestMapping annotation with method = RequestMethod.POST attribute. 

 

url표현식과 일치하는 http post 요청을 처리하는데요. 주로 데이터를 등록할 때 사용되는 매핑입니다.

그리고 1번보단 2번으로 활용도가 높습니다. 

@RestController
public class PostController1 {

    @RequestMapping(value = "/goods", method = RequestMethod.POST) //#1번
    public String getItem() {
        return "itemA";
    }
    
    @PostMapping("/goods") //#2번
    public String getItem() {
        return "itemA";
    }
}

 

Postman 테스트 결과, itemA가 출력되면서 정상 작동함을 확인했습니다. 

 

 

 

2. @GetMapping


Postmapping보다는 간단합니다. url표현식과 일치하는 http get 요청을 처리합니다.

실제로 라우팅을 통해 알아보겠습니다.

 

@RestController
public class PostController1 {

    @GetMapping("/view")
    public String get() {
        return "get view";
    }
    
}

 

정상 작동함을 확인했습니다.

3. @RestController


클래스 위 애노테이션인 RestController의 경우는 Controller+ResponseBody의 조합입니다. 클래스 레벨에 사용하면, 전체 메서드에 @Responbody가 적용됩니다.

 

  • Controller는 Spring MVC에서 뷰 템플릿(viewResolver)을 사용하여 view를 생성 및 반환할때 사용되는 컨트롤러입니다.
  • RestController는 Rest API(HTTP API)를 만들때 사용하는 컨트롤러이면서 HTTP 메세지 바디에 데이터를 직접 입력 (HttpMessageConverter) 하고자 할때 사용됩니다. 

 

 

HTTP 메세지 바디에 데이터가 직접 입력된다고 말씀 드렸는데요. 페이지 소스를 확인하면 StringHttpMessageConverter 에 의해 "get view"가 그대로 출력된 것을 확인할 수 있습니다.

 

페이지 소스

 

 

 


[출처]