반응형
※ 이전 편 : 2025.01.03 - [🍃 Spring/🍃 Spring Boot] - [SpringBoot]웹 개발 기초-MVC와 템플릿 엔진
@ResponseBody
: html의 Body란에 그대로 data를 반환한다.
주로 객체를 return해
json데이터를 반환하기 위해 많이 사용된다.
- Controller단에 메서드를 만들었다.
- code
더보기package hello.hellospring.Controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hihi"); return "hello"; } @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } @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; } public class Hello { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }
- Hello라는 내부 클래스를 이용해 데이터를 만들어 반환했다.
- code
- 서버실행 결과
- 화면
- json 데이터형태로 반환된 것을 확인할 수 있다.
- 화면
HttpMessageConverter
: @ReponseBody가 적혀있으면
viewResolver가 아닌 HttpMessageConverter 작동한다.
HttpMessageConverter | |
JsonConverter | StringConverter |
- 리턴 값이 단순 문자이면 StringConverter가 작동하고
- 객체이면 JsonConverter가 작동해 Json을 반환한다.
💡 요즘 view ↔ java에서 데이터를 주고 받을 때는 json을 사용하기에 이렇게 설정되어 있다.
🌟 검색해보면 HttpMessageConverter를 변경해서 사용할 수 있는데, 실무에서는 거의 그대로 사용한다고 한다.
※ 클라이언트의 HTTP Accept 헤더에서 원하는 데이터 타입을 지정할 수 있는데, 컨트롤러의 반환 타입을 조합해서 HttpMessageConverter가 반환타입을 선택한다.
반응형
'🍃 Spring > 🍃 Spring Boot' 카테고리의 다른 글
[SpringBoot][JUnit]회원관리-도메인과 리포지토리 그리고 테스트 (0) | 2025.01.04 |
---|---|
[SpringBoot]회원관리-비지니스 요구사항 정리 (0) | 2025.01.04 |
[SpringBoot][Thymeleaf]웹 개발 기초-MVC와 템플릿 엔진 (1) | 2025.01.03 |
[SpringBoot]웹 개발 기초-정적 컨텐츠 (0) | 2025.01.03 |
[SpringBoot][Gradle]입문-빌드하고 실행 (1) | 2025.01.03 |