HTTP BODY부분에 return값의 데이터를 직접 넣어주겠다는 의미 (html의 body태그X)
응답 body 부에 "hello " + name 이 내용을 직접 넣어주겠다는 의미
viewResolver 대신 HttpMessageConverter가 동작
기본 문자처리 : StringHttpMessageConverter
기본 객체처리 : MappingJackson2HttpMessageConverter
byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
HelloController
name 값으로 spring을 넣으면 return값은 hello spring
이전과는 달리 view가 없음
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-string")
@ResponseBody
public String helloString(@RequestParam("name") String name){
return "hello " + name; // "hello spring"
}
}
페이지 소스보기로 코드를 보면 html 태그 없이 그냥 return 값이 그대로 출력됨을 확인
ResponseBody를 활용해서 문자를 내려받는 게 아니라 더 나아가 데이터(객체)를 내려받을 수 있음
HelloController
※ getter setter 단축키 : Alt + Insert 후 getter 검색
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-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;
}
}
}
객체를 반환하고 @ResponseBody를 붙이면 기본적으로 JSON으로 반환
'SpringMVC > Spring Boot' 카테고리의 다른 글
IntelliJ Gradle 리프레시 | Gradle 안 보일 때 (0) | 2023.09.27 |
---|---|
자주 사용하는 인텔리제이 단축키(window기준) (0) | 2023.09.19 |
@RequestParam (0) | 2022.09.23 |
동작 원리 (0) | 2022.09.23 |
스프링 프로젝트 생성(Spring Boot) (0) | 2022.09.14 |