반응형
반응형
1. 개요
교재를 보며 스프링 부트 환경에서 MVC 패턴을 사용하여 통신 테스트를 하던 도중 예기치 못한 상황이 발생했다.
Controller에서 String 형태로 View의 이름을 반환하려 했으나, 실제 반환된 것은 뷰가 아닌 스트링 자체였다.
test 를 리턴했을 때 test.html 리소스가 반환되는 것이 아닌 test 문자열 자체가 반환된 것이다. 코드를 확인해 보니 이 두 어노테이션을 적절히 사용하지 못해 발생한 문제였다.
2. @Controller
Controller 어노테이션을 사용 시 일반적으로 View Resolver에 설정한 값 기준으로 return 하는 값과 일치하는 View 를 찾아 반환한다. @ResponseBody 어노테이션을 사용할 시 데이터 자체를 반환할 수 있으며, JSON 또는 String 형태로 값을 반환할 수 있다.
3. @RestController
@Controller + @ResponseBody 이다. 해당 컨트롤러에서 View를 리턴하지 않고, REST API를 사용한다면 이 설정이 적절하다.
만약 Controller 통신 후 view 페이지를 예상했는데 view 이름만 달랑 있는 페이지가 나오거나, 반대 상황이 나온다면 컨트롤러의 어노테이션을 확인해보자.
반응형
'백엔드 > Spring' 카테고리의 다른 글
[Spring] Enhancer, MethodInterceptor를 사용한 프록시 구현 / 예제 (0) | 2021.06.09 |
---|---|
[Spring] ContextLoaderListener 란? RootApplicationContext과 WebApplicationContext란? (1) | 2021.03.29 |
@RunWith, @ContextConfiguration 어노테이션 (0) | 2021.01.21 |
[Spring] web.xml 이란? / 예제 (3) | 2020.12.21 |
[Spring] log4j2 사용법, 로그남기기, 파일 저장 (0) | 2019.12.03 |