본문 바로가기
✍ 따뜻한 개발 공부

[스프링부트 공부즁] @ResponseBody 어노테이션

by 따따시 2023. 6. 4.

 

 

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으로 바꿔주는 유명한 라이브러리임 (스프링부트는 이거쓴댕)

 

 

댓글