정적 컨텐츠
SpringBoot는 main/resource/static 아래 HTML를 작성 시 정적 컨텐츠를 제공한다.
- 웹 브라우저에서 localhost/8080/hello-static를 요청 시 내장 톰캣 서버를 거쳐서 Spring으로 간다.
그러면 Spring은 먼저 Controller에 hello-static가 있는지 확인하고 /resource/static 아래 hello-static가 있는지 확인하고 있다면 반환한다.
MVC와 템플릿 엔진
MVC : Model, View, Controller
- 웹 브라우저에서 localhost/8080/hello-mvc를 요청 시 처음에 내장 톰캣 서버를 거쳐서 Spring으로 이동 후
Spring은 Controller에 hello-mvc가 있는지 확인 후 있다면 viewResolver(추후 설명)를 통하여 /templates/hello-template를 찾아서 템플릿 엔진이 변환을 한 html를 웹브라우저에 반환한다.
API
-
주로 사용
-
객체를 반환해야 된다면?
-
@ResponseBody를 사용
- HTTP의 BODY에 문자 내용을 직접 반환
- viewResolver 대신에 HttpMessageConverter가 동작
- 기본 문자처리: StringHttpMessageConverter
- 기본 객체처리: MappingJackson2HttpMessageConverter
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
참고
김영한: 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(인프런)
Github - https://github.com/b2b2004/spring-ex