스프링부트 입문 9. 어노테이션 정리

min seung moon·2021년 6월 27일
0

Spring

목록 보기
26/50

1. GET / POST 관련 Annotaion

01. @RestController

  • Controller로서 동작하기 위해서는 어노테이션
  • 해당 Class는 REST API 처리하는 Controller
  • 전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP Response Body가 생성되는 방식
    • @Controller, Spring MVC의 컨트롤러에서는 데이터를 반환하기 위해 @ResponseBody 어노테이션을 활용
    • @RestController는 Spring MVC Controlle에 @ResponseBody가 추가된 것

02. @RequestMapping

  • RequestMapping URI를 지정해주는 Annotaion
  • 요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션
  • 클라이언트는 URL로 요청을 전송하고, 요청 URL을 어떤 메서드가 처리할지 여부를 결정하는 것
  • 클래스나 메서드 선언부에 @RequestMapping과 함께 URL을 명시하여 사용
  • 메서드 내에서 viewName을 별도로 설정하지 않으면 @RequestMapping의 path로 설정한 URL이 그대로 viewName으로 설정
  • value(path)만 지정하면 get, post, put, delete 모든 요청에 응답
  • @RequestMapping(path = "/hi", method = RequestMethod.GET)으로 포커싱을 해주어야 함

03. @GetMapping

  • HTTP GET 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation
  • 주소에 파라미터가 노출 됨

04. @PathVariable

  • URL 경로에 변수를 넣어주는것
  • URL 정의 부분과 Method 내의 Parameter 부분에 정의를 하여 사용
  • 어노테이션 값으로 {템플릿변수} 를 사용
  • @PathVariable 어노테이션을 이용해서 {템플릿 변수} 와 동일한 이름을 갖는 파라미터를 추가

05. @RequestParam

  • GET방식으로 넘어온 URI의 Quesry Parameter을 받기위한 어노테이션

06. @PostMapping

  • HTTP POST 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation
  • Request Body에 데이터를 담아서 보내짐

07. @RequestBody

  • 클라이언트가 전송하는 Json(application/json) 형태의 HTTP Body 내용을 Java Object로 변환시켜주는 어노테이션
  • @RequestBody로 받는 데이터는 Spring에서 관리하는 MessageConverter들 중 하나인 MappingJackson2HttpMessageConverte를 통해 Java 객체로 변환

08. @JsonProperty(전송받은 Key 명)

  • 객체의 JSON 변환시 key의 이름을 개발자가 원하는대로 설정해주는 어노테이션
  • jackson 라이브러리를 다운받아야 한다

09. @JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)

  • naming 룰 설정
  • 일괄적으로 naming 룰 수정

10. Map map.entrySet()

  • entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용

2. PUT 관련 Annotaion

01. @PutMapping

  • HTTP PUT 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation
  • Request Body에 데이터를 담아서 보내짐

3. DELETE 관련 Annotaion

01. @DeleteMapping

  • HTTP Delete 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation

4. @Controller

01. @Controller

  • View를 반환하기 위해 사용되는 어노테이션
  • Data를 반환 시 @ResponseBody 어노테이션을 활용해주며 이를 통해 @Controller도 Json 형태로 데이터를 반환 가능

02. @ResponseBody

  • Data를 반환 시 @ResponseBody 어노테이션을 활용해주며 이를 통해 @Controller도 Json 형태로 데이터를 반환 가능
profile
아직까지는 코린이!

0개의 댓글