-
스프링MVC 핸들러 아규먼트와 리턴타입 살펴보기Spring/Spring MVC 2020. 6. 8. 00:15
1. HttpServletRequest, HttpServletResponse
서블릿 기반 doGet, doPost 메서드에 쓰였던 아규먼트이며 스프링 웹 MVC에도 사용이 가능하다.
InputStream, Reader , OutputStream, Writer 등으로 받고 처리할 수 있다.
2. PushBuilder
- Http2에서 사용하는 방법
- 요청이 들어올때 보여주고 싶은 이미지가 있다면 그 이미지에 대한 URL을 서버가 또 보내지만
- 이런 추가적인 데이터를 pushBuilder를 통해 서버가 능동적으로 push 해줄 수 있다.
3. HttpMethod
- GET이랑 POST를 지원하는 핸들러 중 각 Http 메서드마다 달리하고 싶다면
- 아규먼트로 주어서 다르게 처리할 수도 있다.
4. Locale, TimeZone, ZoneId
- 요청시 지역 정보를 필요로 한다면 사용하게 된다.
5. @PathVariable
- URI의 템플릿 변수를 읽을 때 사용한다.
6. @MatrixVariable
- URI 경로 중에 키/값 쌍을 읽어올 시 사용하게 된다.
7. @ReqeustPort
- 파일 업로드 시에 사용하게 된다.
8. @RedirectAttributes
- redirect시 URI 정보를 노출시키지 않고 전달할 수 있다.
9. @RequestParam
- 서블릿 요청 매개변수 값을 선언한 메서드 아규먼트 타입으로 변환해준다
- 단순 타입인 경우에 이 애노테이션을 생략할 수 있다.
10. @RequestHeader
- 요청 헤더 값을 선언한 메소드 아규먼트 타입으로 변환해준다.
11. @ResponseBody
- 리턴 값을 HttpMessageConverter를 사용해 응답 본문으로 사용한다.
12. ResponseEntity
- 응답 본문 뿐 아니라 헤더 정보, status 코드까지, 전체 응답을 만들 때 사용한다.
- Rest-Api를 좀 더 깊게 만들려면 사용하게 된다.
- 데이터 타입을 정확히 안다면 제너릭으로 타입을 줄 수도 있다.
13. String
- ViewResolver를 사용해서 뷰를 찾을 때 사용하게 된다.
- 스프링 부트를 쓰게 된다면 resousces/template 디렉터리 밑에서
- 해당 이름의 html thymeleaf 파일을 찾게 된다.
14. View
- 암묵적인 모델 정보를 랜더링할 뷰 인스턴스
15. Map Model
- (RequestToViewNameTranslator를 통해서) 암묵적으로 판단한 뷰 랜더링 할 때 사용할 모델 정보
- 모델 정보만 주었기 떄문에 렌더링 할 뷰를 모르고 해당 URI를 통해 뷰를 찾게 된다.
16. @ModelAttribute
- (RequestToViewNameTranslator를 통해서) 암묵적으로 판단한 뷰 랜더링 할 때 사용할 모델 정보에 추가
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-methods
'Spring > Spring MVC' 카테고리의 다른 글
요청 매개변수를 메소드 아규먼트로 받아오는 방법 (0) 2020.06.09 핸들러 메소드 URI 패턴 (0) 2020.06.09 Custom한 어노테이션 만들기 (0) 2020.06.07 HEAD와 OPTIONS 메소드 (0) 2020.06.07 핸들러, 헤더, 메개변수 (0) 2020.06.06