복붙노트

[SPRING] ResponseEntity <T>와 @ResponseBody의 차이점은 무엇입니까?

SPRING

ResponseEntity 와 @ResponseBody의 차이점은 무엇입니까?

내 컨트롤러에 메시지를 반환하는 간단한 처리기가 있습니다.

@RequestMapping(value = "/message")
@ResponseBody
public Message get() {
    return new Message(penguinCounter.incrementAndGet() + " penguin!");
}

동시에 나는 이런 것을 사용할 수있다.

@RequestMapping(value = "/message")
ResponseEntity<Message> get() {
    Message message = new Message(penguinCounter.incrementAndGet() + " penguin!");
    return new ResponseEntity<Message>(message, HttpStatus.OK);
}

이 두 가지 접근 방식의 차이점은 무엇입니까? HttpStatus를 고려하지 않겠습니다. :)

해결법

  1. ==============================

    1.ResponseEntity는 임의의 HTTP 응답 헤더를 정의 할 때 유연성을 제공합니다. 여기에서 네 번째 생성자를 참조하십시오.

    ResponseEntity는 임의의 HTTP 응답 헤더를 정의 할 때 유연성을 제공합니다. 여기에서 네 번째 생성자를 참조하십시오.

    http://docs.spring.io/spring/docs/3.0.x/api/org/springframework/http/ResponseEntity.html

    ResponseEntity(T body, MultiValueMap<String,String> headers, HttpStatus statusCode) 
    

    가능한 HTTP 응답 헤더 목록은 다음에서 사용할 수 있습니다.

    http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Responses

    일반적으로 사용되는 것은 Status, Content-Type 및 Cache-Control입니다.

    필요하지 않다면 @ResponseBody를 사용하면 좀 더 간결해질 것입니다.

  2. from https://stackoverflow.com/questions/22725143/what-is-the-difference-between-responseentityt-and-responsebody by cc-by-sa and MIT license