@Controller
@Component
애노테이션이 있어서 컴포넌트 스캔의 대상이 된다.@RestController
@Controller
는 반환 값이 String이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 랜더링 된다.@RestController
는 반환 값으로 뷰를 찾지 않고, HTTP 메시지 바디에 바로 입력한다.@RequestMapping(URI)
@RequestParam
@RequestParam("username")
은 request.getParameter("username")
와 거의 같은 코드이다.@PathVariable
/mapping/{userId}
와 같은 URI 경로가 호출되었다면, 중괄호안에 있는 값을 @PathVariable
을 통해 받을 수 있다.@PathVariable("userId") String data
: 변수명을 다르게 받을 수 있다.@PathVariable String userId
: 변수명이 같으면 소괄호를 생략할 수 있다.@RequestHeader("header-name")
@RequestHeader("host") String host
: host 헤더를 조회한다.@CookieValue(value = "", required = boolean)
@CookieValue(value = "myCookie", required = boolean) String cookie
@ResponseBody
@ModelAttribute
@RequestParam
은 쿼리 파라미터가 여러개일 경우 한개만 받을 수 있다. 쿼리 파라미터들이 다 들어있는 클래스가 있다면, @ModelAttribute
를 통해 쿼리 파라미터들을 한꺼번에 받을 수 있다.@RequestBody
@RequestBody
를 사용하면 HTTP 메시지 바디 정보를 편리하게 조회할 수 있다.@RequestHeader
를 사용하면 도니다.