API 방식을 이용하면 viewResolver를 사용하지 않고, 대신에 http의 body부분에 해당 내용을 직접 반환한다. (html 전달 X)
*viewResolver를 사용하지 않기 위해 @ResponseBody
를 추가해준다.
이때 반환한 내용이 문자인지, 객체인지에 따라 내용이 구분된다.
문자 데이터 그대로 http 응답에 넘겨준다.
페이지 소스 코드를 보면 그냥 문자 그대로 전달된 것을 볼 수 있다.
객체일때는 json 형태로 변환한 후 넘겨준다. 여기서는 hello 객체를 json으로 변환하는 것일 거다.
페이지 소스 코드를 보면 json 형태로 전달된 것을 볼 수 있다.
controller에서 @ResponseBody
가 붙혀져 있는것을 확인하고 viewResolver가 아난 HttpMessageConverter 에게 처리를 맡긴다. 이때 문자인 경우와 객체인 경우 각각 다른 종류의 MessageConverter 가 동작한다.
문자면 그냥 내보내고, 객체면 json형태로 변환한 후 내보낸다. Jackson은 spring에서 default로 사용하는 객채->json형식 변환 라이브러리이다.
comment
동작 과정을 봤을때 정적컨텐츠, API도 MVC구조를 따르도록 설계된 것 같다.
입문강의라 대략적으로 설명해주신 것 같은데, 자세한건 나중 시리즈에서 학습하자.