1. 정적 콘텐츠
hello-static.html을 내장 톰켓 서버에 요청한다.
여기서 스프링은 먼저 hello-static 관련된 컨트롤러가 있는지 찾아본다.
없으면 resources에서 static 폴더에 hello-static.html 이 있는지 확인하고 반환해주는 것이다.
2. MVC와 템플릿 엔진
helloController에 hello-mvc가 mapping이 되는지 확인하고 그 메서드에서 hello-template로 반환한다.
viewResolver(View를 찾아주고 template을 연결해주는 역할을 함)라는 곳에서 데이터를 받아서 templates 폴더에 있는 hello-template.html을 thymeleaf에 넘겨준다.
데이터를 처리하고 html을 변환한 다음 웹에 보여지게 된다.
3. API
MVC와 비슷하게 적용한다.
@ResponseBody 를 사용하면 HTTP의 Body에 문자 내용을 직접 반환한다.
그럼 viewResolver 대신에 HttpMessageConverter가 동작한다.
만약 문자열이 들어오면 StringConverter(StringHttpMessageConverter),
객체가 들어오면 JsonConverter(MappingJackson2HttpMessageConverter)로 처리한다.
>> 기본 문자처리 : StringHttpMessageConverter
>> 기본 객체처리 : MappingJackson2HttpMessageConverter
byte 처리 등등 기타 여러 HttpMesageConverter가 기본으로 등록되어 있다.
Tip.
- json 처리하는데 대표적인 라이브러리 2가지 : 1. Jackson 2. Gson
- 클라이언트의 HTTP Accept 헤더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 'HttpMessageConverter'가 선택된다.
'백엔드 개발 > Spring&JPA' 카테고리의 다른 글
좋은 객체 지향 설계의 5가지 원칙 (SOLID) (0) | 2023.03.09 |
---|---|
스프링 빈과 의존관계 (0) | 2023.03.02 |
console로 빌드하기 (0) | 2023.03.01 |
spring-boot-devtools (0) | 2023.03.01 |
thymeleaf 템플릿엔진 (0) | 2023.03.01 |