Spring Boot API(feat.ResponseBody)
@ResponseBody 문자 반환
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello" + name;
}
}
@ResponseBody
를 사용하면 뷰 리졸버(viewResolver
)를 사용하지 않는다.- 대신에 HTTP의 Body에 문자 내용을 직접 반환(HTML Body 아님)
- 실행
@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으로 변환됨- 실행
- http://localhost:8080/hello-api?name=spring!!!!!
- 이렇게 입력 후 엔터를 치면
{"name":"spring!!!!!"}
- 이렇게 Json형식으로 나옴
@ResponseBody 사용 원리
@ResponseBody
를 사용- HTTP의 Body에 문자 내용을 직접 반환
viewResolver
대신에HttpMessageConverter
가 동작- 기본 문자처리 :
StringHttpMessageConverter
- 기본 객체처리 :
MappingJackson2HttpMessageConverter
- byte처리 등 기타 여러
HttpMessageConverter
가 기본으로 등록되어 있음
- 참고
- 클라이언트의 HTTP Accept Header와 서버의 컨트롤러 반환 타입 정보 . 둘을 조합해서
HttpMessageConverter
가 선택된다.
- 클라이언트의 HTTP Accept Header와 서버의 컨트롤러 반환 타입 정보 . 둘을 조합해서
Leave a comment