티스토리 뷰

Spring

Spring - MVC MethodArgument_ReturnType

엔꾸꾸 2019. 7. 24. 21:59

Spring Method Argument, Return Type

  • 기본적으로 제공하는 타입들이 다양하며, 원한다면 커스텀한 타입을 지원하도록 설정이 가능하다.

HandlerMethodArgument

- 주로 요청 그 자체 또는 요청에 들어 있는 정보를 받아오는 사용한다.
  • org.springframework.web.context.requeset.WebRequest

  • org.springframework.web.context.request.NatvieWebRequest

    • Spring이 제공해주는 API
    • ServletAPI를 Wrapping한 형태
    • 요청과 관련된 다양한 정보를 가져올 수 있다.
      • Header 정보
      • Locale 정보
      • Parameter 정보
      • Principal
      • ContextPath
      • SessionId
      • .. 등
  • javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse

    • ServletAPI
    • Low-Level로 직접 코딩을 하고싶다면 사용할 수 있다.
  • java.io.InputStream, java.io.OutputStream

    • ServletAPI를 직접 사용하지 않고, 요청본문을 읽어오고 싶을때 사용할 수 있다.
    • InputStream 자체가 Requestbody이다.
    • OutputStream 으로 응답한다면 ResponseBody가 된다.
  • java.io.Reader, java.io.Writer

    • 위 두 Stream들을 추상화 한 것
  • javax.servlet.http.PushBuilder

    • Spring5, http2에서 사용할 수 있다.
    • 리소스 푸쉬에 사용한다.
    • 브라우저가 요청을 하지않아도 서버가 능동적으로 리소스를 푸쉬하는용도
    • 요청 -> 응답의 사이클이 줄어들기때문에 조금이나마 응답속도가 빨라진다.
  • org.springframework.http.HttpMethod

    • 요청의 Method가 어떤 Method인지 정보를 가지고 있다.
  • java.util.Locale, java.util.TimeZone, java.time.ZoneId

    • Spring MVC가 LocaleResolver Interface를 사용해서 분석한 Locale정보를 가지고 있다.
  • @PathVariable

    • URI Template 변수를 읽을때 사용한다.
  • @MatrixVariable

    • URI 경로중 키/값 쌍을 읽어올때 사용한다.
  • @RequestBody

    • Http 본문에 있는 메시지를 HttpMessageConverter를 사용해서 읽어올 수 있다.
  • @RequestParam

    • 서블릿 요청 매개변수값을 선언한 메서드 아규먼트 타입으로 변환해준다.
    • 단순 타입의경우 이를 생략할 수 있다.
  • 그외 ..

ReturnType

  • @ResponseBody

    • 응답본문에 메시지를 보내고싶을때 사용
  • HttpEntity, ResponseEntity

    • 응답본문 뿐 아니라, 헤더정보까지 전체 응답을 만들때 사용한다.
    • RESTAPI를 좀더 심도있게 만들려면 사용해야한다.
  • String

    • ViewResolver를 사용해서 View를 찾을때 사용한다.
    • @ResponseBody를 사용중이라면 문자열을 요청본문에 직접 넣어준다.
  • Map, Model

    • Model정보를 넣어준다.
    • RequestToNameTranslator를 사용해서 View를 요청에서 유추해서 ViewResolver를 찾는다.
  • 그외 ..

    • ....

'Spring' 카테고리의 다른 글

Spring - MVC @RequestParam  (0) 2019.07.27
Spring - MVC PathVariable_MatrixVariable  (0) 2019.07.25
Spring - MVC HTTP HEAD_OPTIONS 요청 처리  (0) 2019.07.23
Spring - MVC Header_Parameter_Mapping  (0) 2019.07.23
Spring - MVC ContentType _Mapping  (0) 2019.07.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함