본문 바로가기
Spring

Spring - @Controller & @RestController

by devLog by Ronnie's 2021. 4. 20.

Spring - @Controller & @RestController 

 

두 어노테이션의 차이를 정리하고자 글을 남긴다.

 

@Controller

- View를 반환

- @ResponseBody를 사용하면 View를 반환하지 않고 직접 데이터를 반환한다.

@RestController

- @Controller + @ResponseBody가 추가된 개념이다.

- 스프링 4버전 이후로 출시됨

- @RestController 를 선언하면 @ResponseBody를 선언하지 않고 같은 효과

 

즉 @Controller와 @RestController의 주요 차이점은 ResponseBody가 생성되는 방식이다.

 

@Controller에서 필요한 것들만 @ResponseBody를 추가해서 사용해도 기능상에는 문제가 없지만 코드를 보는 입장에서는

다른 기능들이 섞여있는 모양이므로 기능 구분을 위해서 @Controller로 뷰 객체를 반환하는 기능과 @RestController를 써서 데이터를 반환하는 기능을 구분을 두는 것이 좋다.

댓글