@RestController

gga·2021년 6월 10일
0

spring

목록 보기
2/3

REST와 관련해서 알아두어야 하는 어노테이션

어노테이션기능
@RestControllerController가 REST 방식을 처리하기 위한 것임을 명시한다.
@ResponseBody뷰로 전달되는게 아니라 데이터 자체를 전달하기 위한 용도
@RequestBodyJSON 데이터를 원하는 타입으로 바인딩 처리
@PathVariableURL 경로에 있는 값을 파라미터로 추출하려고 할 때 사용
@CrossOriginAjax 크로스 도메인 문제를 해결해주는 어노테이션

@RestController

@RestController = @Controller + @ResponseBody

이렇게 글만 읽었을 때 당최 무슨 말인지 잘 이해가 되질 않았다. @Controller@RestController 차이는 실습을 통해 조금 이해할 수 있었다.

구조는 다음과 같으며, test1.html 는 바디에 Hello World!만 작성하였다.

@Controller vs @RestController

1. @Controller

@Controller
public class Cont {
    @RequestMapping(value = "/cont")
    public String Test1() {
        return "test1.html";
    }
}

결과는 test1.html 로 이동하여 화면에 Hello World를 출력해 준다.

2. @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가 출력된 것을 볼 수 있다.

참고

코드로 배우는 스프링 웹 프로젝트(개정판)

0개의 댓글