@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를 사용하면 도니다.