@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name; // "hello spring"
}
}
@ResponseBody 를 사용하면 뷰 리졸버( viewResolver )를 사용하지 않음
템플릿 엔진과 차이점 : 뷰 이런거 없고 데이터가 그대로 내려감
url: localhost:8080/hello-string?name=spring!!!!! 여기 들어가서 페이지 소스 확인하면
"hello spring!!!!!"만 나옴
html 바디가 아닌 http에서 바디부에 리턴값을 직접 넣어준다.
@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;
}
}
}
json으로 반환하는게 기본
json방식으로 데이터를 만들어서 http응답에 반환
json 스타일로 바꿔서 웹 브라우저로 보내줌
url : http://localhost:8080/hello-api?name=spring
@ResponseBody 를 사용하고, 객체를 반환하면 객체가 JSON으로 변환됨
@ResponseBody 를 사용
HTTP의 BODY에 문자 내용을 직접 반환
viewResolver 대신에 HttpMessageConverter 가 동작
기본 문자처리: StringHttpMessageConverter
기본 객체처리: MappingJackson2HttpMessageConverter

'스프링' 카테고리의 다른 글
| 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2024.01.20 |
|---|---|
| 회원 리포지토리 테스트 케이스 이클립스로 Junit Test 실행해보기 (0) | 2024.01.11 |
| MVC와 템플릿 엔진 (0) | 2024.01.10 |
| cmd창에서 빌드하고 실행해보기 (0) | 2024.01.10 |
| thymeleaf 템플릿 엔진 동작(기본) (0) | 2024.01.10 |