[Spring 기초] API

Max·2023년 1월 6일
0

Spring

목록 보기
7/7


@ResponseBody 문자 반환

@Controller
public class HelloContoller {
	
    @GetMapping("hello-string")
    @ResponseBody
    public String helloString(@RequestParam("name") String name) {
    	return "hello" + name;
    }
}

@ResponseBody를 사용하면 ViewResolver를 사용하지 않고 http의 body에 문자 내용을 직접 반환한다.


@ResponseBody 객체 반환

@Controller
public class HelloContoller {
	
    @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;
        }
  	}
}

객체를 반환하게 되면 객체가 JSON으로 반환하게 된다.


@RepsonseBody 사용 원리

  • 웹 브라우저에서 요청이 들어오면 내장 톰켓에서 받고 다시 스프링의 컨트롤러로 넘긴다.
  • 컨트롤러에서 @RepsonseBody가 있는 것을 확인하고 ViewResolver 대신 HttpMessageConverter이 동작하게 된다.
    • 기본 문자 : StringHttpMessageConverter
    • 기본 객체 : MappingJackson2HttpMessageConverter
  • 웹 브라우저 또는 다른 서버에 JSON, String을 반환해준다.
profile
co_der

0개의 댓글

관련 채용 정보