관리 메뉴

공부한것들을 정리하는 블로그 입니다.

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 본문

Spring/강의

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

호 두 2022. 3. 17. 10:37
반응형

 

1) 정적 컨텐츠

1. 브라우저에 localhost:8080/hello-static.html 입력
2. 내장 톰켓서버에서 스프링 컨테이너의 hello-static 컨트롤러 메소드가 있는지 확인
  - 있을 경우, 해당 컨트롤러 실행
3. 없을 경우, resources: static/hello-static.html을 찾은 후, 단순한 html 컨텐츠를 반환
  - resources/static 하위
  - 파일명 : hello-static.html
  - 동적인 동작은 없는 단순한 html 컨텐츠를 반환

 

 


2) MVC와 템플릿 엔진

1. 브라우저에 localhost:8080/hello-mvc 입력
2. 내장 톰켓서버에서 스프링 컨테이너의 hello-static 컨트롤러 메소드가 있는지 확인
  - 있을 경우, 해당 컨트롤러 실행
3. 있을 경우, hello-mvc @GetMapping("hello-mvc") 컨트롤러를 실행
  - @RequestParam의 required = true (default) 이므로 반드시 값이 있어야 한다.
    - 없으면 오류응답
- required = false 로 명시해주면 없어도 오류처리 x
3. 브라우저에 localhost:8080/hello-mvc?name=spring 입력
  - QueryString에서 name에 spring이 매핑됨
  - viewResolver가 명시된(정해진) 디렉터리 하위에서, 확장자명을 붙인 파일명을 찾아 리턴

 

 


3) API

1. 정적 컨텐츠 vs 템플릿엔진 vs API(String, Object)
  - 템플릿엔진, API 방식 : 동적컨텐츠 방식
  - 차이점
    - 템플릿엔진 방식 : 데이터를 VIewResolver를 통해 HTML로 내려줌
    - API 방식 : HttpMessageConverter가 작동하여 String, JSON 등의 형식으로 데이터만 HTTP Body에 담아 응답
2. 메서드에 사용 : @ResponseBody 어노테이션을 사용
  - HttpMessageConverter가 작동
  - 데이터를 http body에 담아 응답
  - String, JSON 등의 형식 
3. 컨트롤러에 사용 : @RestController
  - 메서드에 각각 @ResponseBody 어노테이션을 붙이지 않아도 동일하게 일괄 적용
4. 객체(Object)를 API방식으로 응답
  - JSON형식으로 응답
  - MappingJackson2HttpMessageConverter가 작동 (JSON = 스프링의 default = Jackson 라이브러리)
  - 데이터를 XML 등으로 응답하고 싶으면
    - 설정 값, 라이브러리를 변경하거나
    - http Accept 헤더와 서버의 컨트롤러 반환타입정보를 조합해서 HttpMessageConverter를 변경하면 됨

 

 

반응형
Comments