8월 25일 TIL, 항해 12일차

코코·2023년 8월 26일
0

TIL(Today I Learned)

목록 보기
13/19
post-thumbnail

@ResponseBody 사용 원리

<출처 - 김영한님의 '스프링 입문' 강의자료>

@ResponseBody를 사용

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

1. 문자 반환

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

2. 객체 반환

@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으로 변환됨
profile
Just Do It

0개의 댓글