Spring 라이브러리
Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.
- 스프링 부트 라이브러리
- spring-boot-starter-web
- spring-boot-starter-tomcat: 톰캣 (웹서버)
- spring-webmvc: 스프링 웹 MVC
- spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진 (View)
- spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
- spring-boot-starter-logging
- 테스트 라이브러리
- spring-boot-starter-test
- junit: 테스트 프레임워크
- mockito: 목 라이브러리
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
- 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다.
- 스프링 부트 템플릿 기본 viewName 매핑
- resources:templates/ + {viewName} + .html
스프링 웹 개발
1. 정적 컨텐츠
서버와의 연결 없이 html 파일을 그대로 보여준다. (스프링 컨테이너와 대화x)
2. MVC와 템플릿 엔진
MVC: Model, View, Controller
3. API
@ResponseBody 문자 반환
- @ResponseBody를 사용하면 뷰 리졸버(viewResolver)를 사용하지 않음
- 대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님)
- @ResponseBody를 사용하고, 객체를 반환하면 객체가 JSON으로 변환됨
- @ResponseBody 를 사용
- HTTP의 Body에 문자 내용을 직접 반환
- viewResolver 대신에 HttpMessageConverter 가 동작
- 기본 문자처리: StringHttpMessageConverter
- 기본 객체처리: MappingJackson2HttpMessageConverter
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음