@Slf4j
@Controller
@RestController
public class ResponseBodyController {

    @ResponseStatus(HttpStatus.OK)
    @GetMapping("/response-body-json-v2")
    public HelloData responseBodyJsonV2() {
        HelloData helloData = new HelloData();
        helloData.setUsername("userA");
        helloData.setAge(20);
        return helloData;
    }
    
}

@RestController


@Controller 대신에 @RestController 애노테이션을 사용하면, 해당 컨트롤러에 모두 @ResponseBody 가
적용되는 효과가 있다. 따라서 뷰 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력한다. 이름
그대로 Rest API(HTTP API)를 만들 때 사용하는 컨트롤러이다.
참고로 @ResponseBody 는 클래스 레벨에 두면 전체 메서드에 적용되는데, @RestController 에노테이션 안에
@ResponseBody 가 적용되어 있다.

 

responseBodyJsonV2

ResponseEntity 는 HTTP 응답 코드를 설정할 수 있는데, @ResponseBody 를 사용하면 이런 것을 설정하기 까
다롭다.
@ResponseStatus(HttpStatus.OK) 애노테이션을 사용하면 응답 코드도 설정할 수 있다.
물론 애노테이션이기 때문에 응답 코드를 동적으로 변경할 수는 없다. 프로그램 조건에 따라서 동적으로 변경하려면
ResponseEntity 를 사용하면 된다.

'스프링' 카테고리의 다른 글

타임리프 문법 정리  (0) 2024.01.31
스프링 @RequiredArgsConstructor 란?  (0) 2024.01.31
스프링 mvc 뷰 템플릿 호출하기  (0) 2024.01.30
스프링 json 받기  (0) 2024.01.24
스프링 @ModelAttribute  (0) 2024.01.19

+ Recent posts