Java/Spring

[스프링 웹 개발 기초]API

코딩공부 2021. 3. 24. 02:33

@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 TAG를 말하는 것이 아님)

 

실행

  • http://localhost:8080/hello-string?name=spring

결과

hello hello 

 

개발자 모드에서도 문자열 hello hello 만 나옴

 

 

@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"}

 

@ResponseBody 를 사용

  • HTTP의 BODY에 문자 내용(JSON or String)을 직접 반환
  • viewResolver 대신에 HttpMessageConverter 가 동작
  • 기본 문자처리: StringHttpMessageConverter
  • 기본 객체처리: MappingJackson2HttpMessageConverter
  • byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음

 

Http Body에 문자 내용을 직접적으로 반환해주는 역할을함. (ajax 통신할 때 사용됨)

 

문자가 반환되면 StringConverter

객체는 JsonConverter로 사용된다.

 

Json

 

객체를 json형태로 바꿔주는 라이브러리 대표적으로 2

Jackson(Spring Boot 채택), gson(google)