✍ 따뜻한 개발 공부
[스프링부트 공부즁] @ResponseBody 어노테이션
따따시
2023. 6. 4. 15:21
API 방식으로 http 바디에 직접 실어서 보내주겠다 -> @ResponseBody
=> html을 내보내는게 아니라 말그대로 문자를 고대로 내려줌
@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 String setName(String name){
this.name = name;
}
}
이렇게 하면 {"name": "내가 get요청 날린 value값"} 이 고대로 내려감
* getter, setter 생성 단축키
cmd + N
@ResponseBody가 없을때는 Controller가 그냥 viewResolver한테 던져버리는데
('나한테 맞는 템플릿 찾아서 돌려죠!)
@ResponseBody가 있을땐, HTTP응답에 그대로 던짐
위의 hello-string 은 '문자'를 던지는데
hello-api에 보면 객체를 던지는데 , 스프링부트 입장에선 '객체'를 던지게 될땐
제이슨 방식으로 던지겟다 라는게 디폴트 정책임
HttpMessageConverter 가 만약 쌩 문자면 StringConverter가 동작하고
객체야 그럼 JsonConverter가 동작해서 자동으로 제이슨 형식으로 던지는 것
MappingJackson이 json으로 바꿔주는 유명한 라이브러리임 (스프링부트는 이거쓴댕)