본문 바로가기
Spring

[Spring] Spring MVC Controller 어노테이션

by Bhinney 2022. 8. 24.

☑️ @RestController

  • 어노테이션을 추가한 해당 클래스가 REST API의 리소스를 처리하기 위한 API의 엔드포인트로 동작함을 정의
  • 해당 어노테이션을 추가하면, 애플리케이션 로딩 시 Spring Bean으로 등록

☑️ @RequestMapping

  • 클라이언트의 요청과 Controller의 핸들러 메서드(Handler Method)를 맵핑(Mapping) 해주는 역할
  • RequestMapping에 정의된 URI에 매치되는 요청을 처리할 수 있도록 도와줌
  • 클래스 레벨, 메서드 레벨에 사용 가능
  • 일반적으로 공통 URI는 클래스 레벨에 정의, 핸들러 메서드별로 달라지는 URI는 각각의 핸들러 메서드에 정의
  • 일반적으로 클래스 레벨에는 @RequestMapping을 사용하고, 메서드 레벨에서는 단축표현 사용
  • 단축 표현 : @GetMapping, @PostMapping, @PutMapping, @PatchMapping, @DeleteMapping

✔️ @GetMapping

  • 클라이언트가 서버에 리소스를 조회할 때 사용하는 어노테이션
  • HTTP GET 메서드에 해당하는 단축 표현

✔️ @PostMapping

  • 클라이언트가 서버에 리소스를 등록할 때 사용하는 어노테이션
  • HTTP POST 메서드에 해당하는 단축 표현

✔️ @PutMapping

  • 클라이언트가 서버에 리소스를 모든 정보를 수정할 때 사용하는 어노테이션
  • HTTP PUT 메서드에 해당하는 단축 표현

✔️ @PatchMapping

  • 클라이언트가 서버에 리소스를 일부 정보만 수정할 때 사용하는 어노테이션
  • HTTP PATCH 메서드에 해당하는 단축 표현

✔️ @DeleteMapping

  • 클라이언트가 서버에 리소스를 삭제할 때 사용하는 어노테이션
  • HTTP DELETE 메서드에 해당하는 단축 표현

☑️ @RequestParam

  • 핸들러 메서드의 파라미터 종류 중 하나
  • 주로 클라이언트에서 전달하는 요청 데이터를 쿼리 파라미터(Query Parmeter 또는 Query String), 폼 데이터(form-data), x-www-form-urlencoded 형식으로 전송하면 이를 서버 쪽에서 전달 받을 때 사용하는 어노테이션
  • 다른 형식이면(raw로 해서 JSON 해 봄 )
    • IDE에서는 MissingServletRequestParameterException 발생 
    • Postman에서는 'status : 400, Bad Request' 에러(확인 완료)


☑️ @RequestHeader

  • Request 헤더를 바인딩해서 헤더의 key/value 값에 접근

☑️ @RequestBody

  • Request 바디를 읽어서 지정한 Java 객체로 역직렬화
  • 클라이언트에서 전송하는 Request Body가 JSON 형식이어야 함
  • 다른 형식이면(x-www-form-urlencoded 형식으로 해 봄)
    • IDE에서는 HttpMediaTypeNotSupportedException 발생
    • Postman에서는 'status : 415, Unsupported Media Type' 에러 (확인 완료)


☑️ @RequestPart

  • 'multipart/form-data'형식의 Request 데이터를 Part별로 바인딩 할 수 있도록 함

☑️ @PathVariable

  • 핸들러 메서드의 파라미터 종류 중 하나
  • MissingPathVariableException
  • 클라이언트 요청 URI에 패턴 형식으로 지정된 변수의 값을 파라미터로 전달받을 수 있음

☑️ @MatrixVariable

  • URL 경로 세그먼트 부분에 key/value 쌍으로 된 데이터에 바인딩 할 수 있도록 함

☑️ HttpEntity

  • Request 바디와 헤더에 접근할 수 있는 컨테이너 객체 사용 가능

☑️ javax.servlet.ServletRequest

☑️ javax.servlet.ServletResponse

  • 로우 레벨의 서블릿 요청과 서블릿 응답 정보가 필요할 때 사용 가능

'Spring' 카테고리의 다른 글

[Spring] 예외 처리 - Controller에서 처리  (0) 2022.10.27
[Spring] MapStruct 사용하여 Mapper 구현하기  (0) 2022.10.20
[Spring Framework] ResponseEntity  (0) 2022.08.25
[Spring] Spring MVC  (0) 2022.08.24
[Spring] AOP란  (0) 2022.08.17

댓글