@responsebody 예제

요청본문이 HttpMessageConverter를 통해 전달되어 요청의 콘텐츠 유형에 따라 메서드 인수를 해결합니다. 이를 이해하기 위해 고객 등록 프로세스를 예로 들어 보겠습니다. 컨트롤러 클래스 코드가이 문서의 목적에 대한 고안된 예라는 것을 깨닫지 못하는 사람들을 위해. 실제로 단일 톤이기 때문에 컨트롤러의 멤버 변수에 상태를 저장하면 안되며 향후 모든 요청에 액세스 할 수 있으며 스레드 안전과 관련된 일반적인 함정에 취약합니다. 참고 : 봄 4에서와 같이, @RestController @ResponseBody 이전에 제공 된 동일한 기능을 달성하는 선호하는 방법입니다. @RestController @Controller+@ResponseBody, 모든 방법을 @ResponseBody 접두사에 붙일 필요가 없습니다. 다음 게시물은 전체 작업 예제와 함께 세부 사항으로 이동합니다. 예를 들어 요청 헤더의 콘텐츠 유형이 응용 프로그램/json 또는 응용 프로그램/xml 중 하나인 경우, POST 본문에 json 또는 XML[인기 형식]이 포함되어 있고 클래스 경로에 Jackson 라이브러리가 있는 경우 Spring은 변환을 매핑Jackson2HttpMessage변환기 [json용] 또는 매핑Jackson2XmlHttpMessage변환기 [xml용]. 응답 엔티티 (위의 예제에서 사용) 전체 HTTP 응답을 나타냅니다. 그것에 대해 좋은 점은 당신이 그것에 들어가는 모든 것을 제어 할 수 있다는 것입니다.

상태 코드, 헤더 및 본문을 지정할 수 있습니다. 다음 게시물은 완전히 작동하는 예제와 함께 세부 사항으로 이동합니다. 이 예제에서는 기본적으로 책 목록인 BookCase의 변환을 처리하는 변환기를 작성했습니다. 변환기는 csv 콘텐츠를 BookCase로 변환할 수 있으며 그 반대의 경우도 마찬가지입니다. 나는 텍스트를 구문 분석하기 위해 opencsv를 사용했다. 다음 예제는 클라이언트에 JSON 데이터를 반환 하는 Spring Boot 웹 응용 프로그램을 만듭니다. 홈 페이지는 MVC 메커니즘으로 처리됩니다. FreeMarker는 홈 페이지에 대한 템플릿을 만드는 데 사용됩니다. 홈 페이지에는 JSON 데이터를 얻기 위한 요청을 보내는 단추가 포함되어 있습니다. Spring Boot 웹 응용 프로그램은 @ResponseBody 개의 추가를 사용하여 JSON 형식으로 데이터를 전송합니다. 이전 예제를 살펴 보겠습니다, 우리의 레지스터 메서드는 고객 개체를 반환 하 고 우리는 HTTPResponse.Here에서 JSON으로 반환 하는 것이 좋습니다 우리의 고객 모델입니다.

이 예제에서는 JSON이 될 수 있습니다. 예를 들어, 위의 예에서, 매핑Jackson2HttpMessage변환기는 JSON 콘텐츠를 처리하는 데 사용되었다. 기본적으로 JSON 또는 도메인 개체에 누락된 속성이 있는 경우 이 변환기와 함께 제공된 Jackson ObjectMapper가 실패합니다. 그것은 단순히 변환하지 못합니다. 아래와 같이 누락된 속성에 실패하지 않도록 오브젝트 매퍼에게 REST에 대한 기본 소개에 대해 말하여 이 동작을 재정의할 수 있습니다. 다음 게시물은 HTTP GET, PUT, POST 및 DELETE 방법 매핑과 함께 편안한 CRUD 웹 서비스, 완전한 예제를 보여줍니다. 형식의 선택은 설치된 메시지 변환기, RequestMapping 어구의 생성 특성 값 및 클라이언트가 허용하는 콘텐츠 유형(HTTP 요청 헤더에서 사용 가능)에 따라 달라집니다. 예를 들어 요청에서 JSON이 아니라 XML을 수락한다고 말하고 목록을 XML로 변환할 수 있는 메시지 변환기가 설치되면 XML이 반환됩니다.