티스토리 뷰
JSON
- Java Script Object Notation
- 키와 밸류로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷
- XML과 싸워 이겼다.
정적 컨텐츠
- 웹 브라우저 요청 시, /hello.html 형식으로 넘어오며, 스프링 컨테이너에서 관련된 컨트롤러가 없다는 것을 확인하고 static 폴더의 같은 이름을 가진 파일을 찾아서 보여준다.
MVC 템플릿 엔진
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
- /hello-mvc 형식으로 넘어와서, 스프링 컨테이너에서 컨트롤러가 리턴한 이름을 찾아서 있으면 viewResolver가 templates/hello-template.html 파일을 찾아서 보여준다.
- @RequestParam: 요청 시 1개의 http 요청을 파라미터에 담아주는 어노테이션이다. 예제에서는 String name을 파라미터 값으로 받는다. 사용 시, String name과 같은 변수가 없으면 400에러를 반환한다(required false로 둘 수도 있다).
- 요청 예) /name?=스프링
- 파라미터가 많으면 Map 을 활용할 수도 있다.
- @PathVariable을 사용하여 /name/스프링과 같이 보낼 수도 있다. 단, @PathVariable은 한 개만 보낼 수 있다.
- 모델 객체를 함께 넘겨주어 템플릿에서 활용할 수 있다.
API 방식
@GetMapping("hello-api")
@ResponseBody //http body에 넘겨줌. 그런데, 문자가 아니고 객체로 반환되면 JSON 으로 디폴트로 반환됨(hTTPMESSAGECONVERTER)
public Hello helloApi(@RequestParam("name") String name){
Hello hello = new Hello();
hello.setName(name);
return hello;
}
- /hello-api 형식으로 넘어와서, 매핑된 컨트롤러가 있는지 확인한다. 컨트롤러에 @ResponseBody 어노테이션이 있으면 viewResolver를 호출하지 않고 HttpMessageConverter가 동작하며, 컨트롤러가 반환한 객체를 변환하여 http body에 반환한다.
- @ResponseBody: String이 반환되면 StringHttpMessageConverter가 처리하며, 객체가 왔을 때는 MappingJacson2HttpMessageConverter가 기본적으로 작동하여 JSON으로 변환한다. 이외 타입도 다른 컨버터가 등록되어 있어 변환해준다.
* 인프런 스프링 입문(김영한) 강의 정리
'개발' 카테고리의 다른 글
| [1일 1로그 100일 완성 IT지식] 024, 025. 소프트웨어 프로그래밍 + 어셈블러 (0) | 2022.05.31 |
|---|---|
| [Spring Boot] 테스트 케이스 작성하기 (0) | 2022.05.25 |
| [1일 1로그 100일 완성 IT지식] 010. 비트 모아 데이터 (0) | 2022.05.22 |
| [Java] 제어자 (0) | 2022.05.18 |
| [Java] 패키지와 임포트 (0) | 2022.05.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- jinja2
- 제어자
- clean-up policy
- IOC
- 상속
- bean
- ORM
- ManyToMany
- 서버환경
- Java
- ResetController
- MVC
- DI
- overfatching
- 단항연산자
- ManyToOne
- OneToMany
- toCharArray
- 배열
- AssertJ
- 고민
- 패키지
- GIT
- 몽고db
- 항해99
- 임포트
- 자바의정석
- controller
- 스프링부트
- AfterEach
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
글 보관함
