어노테이션 | 기능 |
---|---|
@RestController | Controller가 REST 방식을 처리하기 위한 것임을 명시한다. |
@ResponseBody | 뷰로 전달되는게 아니라 데이터 자체를 전달하기 위한 용도 |
@RequestBody | JSON 데이터를 원하는 타입으로 바인딩 처리 |
@PathVariable | URL 경로에 있는 값을 파라미터로 추출하려고 할 때 사용 |
@CrossOrigin | Ajax 크로스 도메인 문제를 해결해주는 어노테이션 |
@RestController
= @Controller
+ @ResponseBody
이렇게 글만 읽었을 때 당최 무슨 말인지 잘 이해가 되질 않았다. @Controller
와 @RestController
차이는 실습을 통해 조금 이해할 수 있었다.
구조는 다음과 같으며, test1.html
는 바디에 Hello World!
만 작성하였다.
@Controller
@Controller
public class Cont {
@RequestMapping(value = "/cont")
public String Test1() {
return "test1.html";
}
}
결과는 test1.html
로 이동하여 화면에 Hello World를 출력해 준다.
@RestController
@RestController
public class RestCont {
@RequestMapping("/")
public String RestTest(){
return "test1.html";
}
}
@RestController
를 사용할 경우 뷰로 이동하는게 아니라 test1.html
문자열 자체를 반환해준다.
@RestController
에서 뷰(View)로 이동@RestController
를 사용하여 뷰로 이동하고 싶을 때는 ModelAndView
클래스를 사용한다.
@RestController
public class RestCont {
@RequestMapping(value = "/test2")
public ModelAndView Test1() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("test1.html");
return modelAndView;
}
}
test1.html
로 이동하여 Hello World가 출력된 것을 볼 수 있다.
코드로 배우는 스프링 웹 프로젝트(개정판)