Spring Framework(96)
-
@InitBinder
@InitBinder 어노테이션은 스프링 MVC에서 WebDataBinder를 초기화하고 사용자 정의 바인딩 로직을 설정하는 데 사용됩니다. WebDataBinder는 HTTP 요청에서 전달된 파라미터를 특정 객체에 바인딩할 때 사용되는 중요한 역할을 담당합니다.@InitBinder의 주요 역할요청 파라미터를 객체에 바인딩: HTTP 요청에서 전달된 데이터를 모델 객체에 바인딩할 때 데이터 형 변환 및 유효성 검사에 관여합니다.문자열 데이터를 객체 속성 유형으로 변환: 요청에서 전달된 값(일반적으로 문자열)을 모델 객체의 속성 유형에 맞게 변환합니다. 예를 들어, 날짜 형식의 문자열을 Date 객체로 변환하는 등의 작업을 수행합니다.HTML 폼을 렌더링할 때 객체 속성을 문자열로 변환: 객체 데이터를 문..
2024.10.09 -
Model
@ModelAttribute 어노테이션은 스프링 MVC에서 모델 객체를 생성하거나 초기화하는 데 사용됩니다. 모델은 뷰에 데이터를 전달하기 위한 컨테이너로, 주로 HTML 템플릿과 함께 사용되지만, 비동기 응답에서도 데이터를 처리하는 데 사용될 수 있습니다.@ModelAttribute는 크게 세 가지 경우에 사용됩니다:컨트롤러 메서드의 파라미터에 사용: 요청과 함께 전달된 데이터를 모델 객체에 바인딩합니다.메서드 레벨에서 사용: 모델을 초기화하거나 데이터를 추가하기 위한 메서드로, 주로 뷰에서 필요한 데이터를 미리 설정해둡니다.리턴값을 모델 속성으로 추가: 메서드의 리턴값을 모델에 속성으로 추가할 수 있으며, 이를 통해 모델 데이터를 뷰에 전달할 수 있습니다.@ModelAttribute의 주요 용도메서드..
2024.10.09 -
Handler Method : Jackson JSON
Spring MVC는 Jackson 라이브러리를 사용하여 JSON 형식의 데이터를 직렬화하고, Jackson의 Serialization Views 기능을 지원합니다. 이를 통해 객체의 모든 필드를 렌더링하지 않고, 특정 조건에 따라 일부 필드만 선택적으로 렌더링할 수 있습니다. JSON 뷰 기능을 사용하는 방법기본 개념Spring에서 @ResponseBody나 ResponseEntity를 사용하여 JSON 데이터를 반환하는 경우, Jackson의 @JsonView 애노테이션을 이용하여 특정 필드만 직렬화할 수 있습니다. @JsonView는 객체의 특정 필드에 대해서만 특정 뷰를 활성화하여 직렬화할 수 있는 기능을 제공합니다.예제 1: @JsonView를 이용한 직렬화컨트롤러 예시아래 예시에서는 UserC..
2024.10.09 -
Handler Method : ResponseEntity
ResponseEntity는 HTTP 응답 본문, 상태 코드, 그리고 응답 헤더를 함께 처리할 수 있는 스프링의 강력한 기능입니다. @ResponseBody는 주로 응답 본문만 직렬화하여 반환하는 반면, ResponseEntity는 상태 코드와 헤더를 포함한 더 많은 정보를 제어할 수 있습니다.기본 개념ResponseEntity는 HTTP 응답의 상태 코드와 헤더를 포함하여 응답을 더 세부적으로 제어할 수 있습니다. 예를 들어, 응답의 HTTP 상태 코드, ETag(헤더), 응답 본문 등을 함께 설정할 수 있습니다.본문: 응답의 내용, 보통 JSON, XML, 문자열 등의 데이터를 포함할 수 있습니다.헤더: 응답에 포함될 다양한 HTTP 헤더를 설정할 수 있습니다. 예를 들어, ETag, Cache-Co..
2024.10.09 -
Handler Method : @ResponseBody
@ResponseBody 어노테이션은 컨트롤러 메서드의 반환값을 HTTP 응답 본문으로 직접 변환하여 클라이언트로 전달하는 역할을 합니다. HttpMessageConverter를 통해 반환 객체는 JSON, XML 등의 형식으로 자동으로 변환됩니다. 주로 RESTful API에서 데이터를 반환할 때 사용됩니다.기본 개념@ResponseBody: 메서드의 반환값을 응답 본문으로 직렬화하여 클라이언트에게 전송합니다. 반환된 객체는 스프링의 HttpMessageConverter를 통해 JSON이나 XML 등의 형식으로 변환되어 클라이언트로 전달됩니다.@RestController: @Controller와 @ResponseBody가 결합된 메타 어노테이션으로, 클래스에 선언되면 해당 클래스의 모든 메서드에서 @R..
2024.10.09 -
Handler Method : HttpEntity
HttpEntity는 스프링에서 HTTP 요청 또는 응답을 표현하는 객체로, 요청의 본문(Request Body)과 헤더(Request Headers)를 함께 처리할 수 있도록 도와줍니다. @RequestBody와 유사하지만, HttpEntity는 헤더와 본문을 모두 다룰 수 있는 기능을 제공합니다.기본 개념HttpEntity: 요청의 본문과 헤더를 포함하는 컨테이너 객체로, 주로 HTTP 요청의 헤더와 본문을 함께 처리할 때 사용됩니다. 응답에서도 사용할 수 있으며, ResponseEntity를 통해 응답 본문과 상태 코드를 함께 반환할 수 있습니다.@RequestBody와의 차이: @RequestBody는 요청 본문만 처리하는 반면, HttpEntity는 본문과 함께 요청 헤더를 다룰 수 있는 확장된..
2024.10.09