@RequestMapping
@RequestMapping(
name = "nameForView", // 뷰 템플릿에서 찾는 이름
value = "/places", // URI 경로
path = "/places", // URI 경로
method = RequestMethod.GET, // Get 방식
params = "test=true", // test=true 파라미터 있는 요청
headers = "header-auth=stupidPassword", // header-auth 헤더값 있는 요청
consumes = MediaType.APPLICATION_JSON_VALUE, // json 으로 데이터 주는 요청
produces = MediaType.APPLICATION_JSON_VALUE // json 데이터 받을 수 있는지 확
)
public List<String> getPlaces() {
return List.of("p1", "p2");
}
- name:뷰템플릿에서식별할때쓰는이름
- value, path: URI
- method: HTTP method (ex: GET, POST, ...)
- params: 파라미터 검사
- headers: 헤더 검사
- consumes: 헤더의 Content-Type 검사
- produces: 헤더의 Accept 검사
핸들러 메소드가 받을 수 있는 요청들
- 메소드 파라미터로 넣을 수 있는 타입들은 아래와 같다.
- ServletRequest, ServletResponse, HttpSession
- WebRequest, NativeWebRequest
- @RequestParam, @PathVariable
- @RequestParam 은 생략가능하지만 생략할 경우 required=false 가 기본값이다.
- 생략안하면 equired=true 가 기본값이다.
- @RequestBody, HttpEntity
- @ModelAttribute, @SessionAttribute, Model, ModelMap
- @RequestHeader, @CookieValue
- Principal, Locale, TimeZone, InputStream, OutputStream, Reader, Writer, ....
- 그 밖에 등등...
핸들러 메소드가 내보낼 수 있는 응답들
- 메소드가 리턴할 수 있는 타입들은 아래와 같다.
- ModelAndView
- String, View
- @ModelAttribute, Map, Model
- @ResponseBody
- HttpEntity, ResponseEntity
- ResponseEntity 로 반환할 경우 @ResopnseBody 를 명시하지 않아도 된다.
- HttpHeaders
- 응답에 바디는 없고 헤더만 있다면 HttpHeaders 로 보낼 수 있다.
- void
- 등등
REFERENCES