https://tae-hui.tistory.com/entry/RequestBody-ModelAttribute-RequestParam-PathVariable-차이점
https://velog.io/@0_sujeong/spring-URL-parameter
RequestParam
예시 url: localhost:8080?param=1
public String list(@RequestParam("param")int pageNum){}
PathVariable
url : localhost:8080/param/1
@RequestMapping(value = "/{word}/{num}" , method = RequestMethod.GET)
public String content(@PathVariable String word, @PathVariable int num) {}
RequestBody
요청 body 안에 들어있는 값들을 읽어온다. post 요청일 때 클라이언트측에서 json 형태의 http body를 java 객체로 변환한 값을 넘겨받는다.
get에서는 사용 불가. (body에 값을 넣지 않기 때문)
@PostMapping("list")
public String list(@RequestBody Book book) {}
ModelAttribute
모델의 속성을 매핑해주는 어노테이션.
클라이언트가 전달하는 값을 객체로 맵핑해주는 역할을 한다. Http Body 데이터 혹은 HTTP 파라미터를
주입한다. 이때 생성자나 Setter로 주입하기때문에 Setter 혹은 생성자가 있어야한다.