상세 컨텐츠

본문 제목

[Spring] @ResponseBody 어노테이션 처리/반환

개발 공부/Spring

by 양양츄 2024. 2. 28. 16:14

본문

@ResponseBody 란?
http 통신 프로토콜은 header와 body가 있는데 여기의 body에 직접 넣어주겠다 라는 의미

**템플릿 엔진과의 차이는 ??
템플릿 엔진은 return 값이 view 처리하는 파일을 찾아서 보여준다
@ResponseBody 는 따로 view 처리하는게 파일이 없고, 어노테이션을 가지고있고, 요청명이 일치하면
해당 메서드가 바로 view 처리된다.

페이지를 실행하고 우클릭 > 페이지 소스보기 클릭시 차이를 알 수 있다.
템플릿 엔진 : html 코드가 보임
@ResponseBody : 메서드의 return 값만 보임

 

@ResponseBody는 HTTP의 BODY에 문자를 보여주는 어노테이션이다.

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

viewResolver가 view를 찾지않고, 해당 메서드의 return값을 HTTP의 BODY에 보여준다.

출처 : 인프런 김영한 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

 

 

추가적으로,

@ResponseBody가 있는 메서드의 return값이 객체라면?? 

json 방식으로 보여준다. json 방식은 키와 값으로 구성되어있는 형태이다.

@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
    Hello hello = new Hello();
    hello.setName(name);
    return hello;
}

//static 객체 생성
//getter setter 단축키 : alt + insert
static class Hello {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

출처 : 인프런 김영한 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

 

 

 

@ResponseBody 처리 과정

관련글 더보기