-
<Spring 입문> 3.3 스프링 웹 개발 기초_APISpring 입문 2025. 4. 17. 12:32반응형
경로: src > main > java > ... > controller > HelloController
@Controller public class HelloController { // 문자가 반환 될 경우 @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello" + name; } // 객체가 반환 될 경우 @GetMapping("hello-api") @ResponseBody public Hello helloApi(@RequestParam("name") String name) { Hello hello = new Hello(); hello.setName(name); return hello; } static class Hello { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
경로: src > main > resources > templates > hello.html
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Hello</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p> </body> </html>
@ResponseBody를 사용
@ResponseBody는 컨트롤러 메서드의 반환값을 "화면(html)"이 아닌 "데이터 자체로" 클라이언트에게 전달하라는 뜻
예시 1: 일반 컨트롤러 (뷰 반환)
@Controller public class HelloController { @GetMapping("/hello") public String hello() { return "hello"; // hello.html이라는 뷰 템플릿을 찾아서 응답 } }
예시 2: @ResponseBody 사용, 문자 반환
@Controller public class HelloController { @ResponseBody @GetMapping("/hello-string") public String helloString() { return "hello world"; // "hello world"라는 텍스트 자체가 브라우저에 응답됨 } }
예시 3: @ResponseBody 사용, 객체 반환 → JSON 응답
@Controller public class HelloController { @ResponseBody @GetMapping("/hello-api") public Hello helloApi() { Hello hello = new Hello(); hello.setName("자바"); return hello; // {"name":"자바"} 라는 JSON 데이터로 응답됨 } static class Hello { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }
@ResposeBody를 사용함으로써 ViewResolver 대신에 HttpMessageConverter가 동작
- HttpMessageConverter는 기본 문자를 처리하는 StringConverter과 기본 객체를 처리하는 JsonConverter가 있다.
- StringConverter가 사용되면 문자를 HTTP 응답 본문에 포함
- JsonConverter 가 사용되면 객체를 HTTP 응답 본문에 포함
'Spring 입문' 카테고리의 다른 글
<Spring 입문> 3.2 스프링 웹 개발 기초_MVC (0) 2025.04.16 <Spring 입문> 3.1 스프링 웹 개발 기초_정적 콘텐츠 (0) 2025.04.16 <Spring 입문> 1. View 환경 설정 (0) 2025.04.15 <Spring> 스프링 의존관계란? (0) 2025.02.20 - HttpMessageConverter는 기본 문자를 처리하는 StringConverter과 기본 객체를 처리하는 JsonConverter가 있다.