티스토리 뷰
스프링부트를 막 입문하기 시작한 스린이! 배우면서 정리하는 목적으로 포스팅을 하는 것이기 때문에
틀린 내용이 있다면 댓글로 남겨주세요! O(∩_∩)O
-
정적 컨텐츠 : 서버에서 어떠한 작업이 필요없이 그냥 파일을 넘겨주기
-
MVC와 템플릿 엔진 : jsp, php와 같은 템플릿엔진. 서버에서 프로그래밍을 해서 html을 동적으로 넘겨주기
-
API : vue, react, 서버끼리 통신할 때 등등
1. MVC와 템플릿 엔진
_Controller
@Controller
public class TestController {
@GetMapping("test")
public String testMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "test-template";
}
}
_View
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello '+${name}"> hello ! </p>
</body>
<html>
Controller에서 parameter로 받았던 name이 thymeleaf 문법을 사용하여 ${name}에 적용된다.
따라서 localhost:8080/test?name=young 을 접속하면 hello young 이라는 페이지가 보일 것!
2. API
_Controller
@Controller
public class TestController {
@GetMapping("test")
@ResponseBody
public String testString(@RequestParam("name") String name, Model model) {
return "hello "+name;
}
}
달라진점은 @GetMapping아래 @ResponseBody가 추가되었다는 점이다.
@ResponseBody는 view없이 문자열이 그대로 전달되는데 http통신의 body 부분에 직접 해당 데이터를 넣겠다는 의미이다.
따라서 localhost:8080/test?name=young 을 접속하면 "hello young" 문자열이 보일 것!
이 때, 반환값이 String이 아니고 객체일 수도 있는데 그때는 기본으로 json형태로 반환된다. (JsonConverter)
- 기본 문자처리 : StringHttpMessageConverter
- 기본 객체처리 : MappingJackson2HttpMessageConverter
- Jackson : 객체를 json으로 바꿔주는 라이브러리
참고로 @ResponseBody를 사용할 경우, class위에 @Controller annotation을 @RestController로 바꿀 수 있다.
@RestController = @Controller + @ResponseBody
3. Controller 작성방법
-
HTTP Method : GET, POST, PUT, DELETE etc ...
-
URL Path : /hello, /hi, /login, /sign-up etc...
-
Do Something
@GetMapping("/hello")
public String hello() { return "hello"; }
→ get 으로 들어온 /hello 에 대해서 요청이 들어오면 hello()함수 실행되고 "hello"반환됨
참고) 인프런 - 스프링 웹 개발 기초 강좌
'spring' 카테고리의 다른 글
[JPA] JPA 장점/사용하는 이유, 동작 방식, 성능 (0) | 2021.01.10 |
---|---|
[Spring boot] 스프링부트 빌드하고 실행하기 (0) | 2021.01.03 |
[Spring boot] IntelliJ - Github 연동 방법 (0) | 2021.01.03 |
[SPRING/SPRING BOOT] RestTemplate을 이용한 HTTP 통신 (0) | 2020.04.26 |
- TAG
- controller, RestController, thymeleaf, 스프링, 스프링부트, 스프링부트api
- Total
- 101,348
- Today
- 35
- Yesterday
- 69
- 스프링부트
- adapter
- BOJ
- HTTP
- handshake
- listview
- 윈도우
- RelativeLayout
- C++
- DATABASE
- 스프링
- 네트워크
- debug
- WinDbg
- 퀵정렬
- 정렬 알고리즘
- layout
- frameLayout
- 백준
- ConstraintLayout
- 이진탐색트리
- LinearLayout
- 백준알고리즘
- windows
- OS
- Android
- C
- 알고리즘
- 안드로이드
- 운영체제