( 강의 수강 후 작성한 내용입니다. 코드로 배우는 스프링 부트)
static: 말 그대로 정적인 컨텐츠
따른 로직을 수행하지 않고 파일 그대로를 클라이언트에 내려주는 형식.
MVC 패턴: Model + View + Controller
클라이언트에서 서버로 요청을 하면 Spring 컨테이너가 Controller를 맵핑시켜 로직 수행 후
ViewResolver를 통해 View를 반환하는 형식.
코드 예제)
웹 페이지에 hello-mvc를 요청하면,
Spring Boot에서 /hello-mvc (Method: GET) 에 맞는 컨트롤러를 찾아 맵핑시킨다.
hello-mvc 컨트롤러에서 Model 속성을 정의하고 hello-template을 리턴하면
ViewResolver가 hello-template.html 이라는 View 파일을 찾아 웹 브라우저에 리턴하여 화면에 템플릿 파일이 띄워진다.
API 방식
View가 필요없는 서버 간 통신 혹은 서버에서는 Data를 제공하고 Front가 분리된(React, Vue 등) 프로젝트에서 사용한다.
코드 예제)
웹 브라우저에서 서버(localhost:8080) 으로 hello-api를 요청하면,
hello-api url에 맞는 컨트롤러를 찾아 맵핑한다.
이전에 @ResponseBody annotation이 없는 컨트롤러는 template찾아 맵핑시켰지만
@ResponseBody로 인해 html body 에 결과값을 직접 return 하게 된다.
위 예시에서는 객체가 리턴되는데, Spring 에서 객체를 리턴하면 Json 형식으로 반환하는게 기본이다.
controller에서 리턴값이 단순 문자열이라면 StringConverter(StringHttpMessageConverter) 가, 객체 형태라면 JsonConverter(MappingJackson2HttpMessageConverter)가 작동하게 된다.
'Java > Spring' 카테고리의 다른 글
[Spring] Spring Bean 등록과 의존관계 설정 (0) | 2022.06.20 |
---|---|
[SpringBoot] Junit 으로 단위테스트 하기 (0) | 2022.06.17 |
[SpringBoot] 1. Spring Boot 프로젝트 시작하기(생성, Controller, View, Build) (0) | 2022.05.27 |
[Spring Framework] 스프링의 이해/개념 (IoC, Bean, AOP, PSA) (0) | 2021.10.22 |
Servlet과 JSP, MVC 패턴 (0) | 2021.06.30 |