54 lines
1.8 KiB
Java
54 lines
1.8 KiB
Java
package com.spring.common.converter;
|
|
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
|
import org.springframework.lang.NonNull;
|
|
import org.springframework.lang.Nullable;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
|
|
|
/**
|
|
* 커스텀 HTTP 메시지 변환기 클래스입니다.
|
|
*
|
|
* <p>이 클래스는 Spring의 MappingJackson2HttpMessageConverter를 확장하여
|
|
* JSON 데이터의 직렬화 및 역직렬화를 처리합니다.</p>
|
|
*
|
|
* <p>Java 8의 날짜 및 시간 API를 지원하기 위해 JavaTimeModule을 등록합니다.</p>
|
|
*
|
|
* @author mindol
|
|
* @version 1.0
|
|
*/
|
|
public class CommHttpMessageConverter extends MappingJackson2HttpMessageConverter {
|
|
|
|
/**
|
|
* 기본 생성자입니다.
|
|
*
|
|
* <p>주어진 ObjectMapper를 사용하여 CommHttpMessageConverter를 초기화합니다.</p>
|
|
*
|
|
* <p>JavaTimeModule을 등록하여 Java 8의 날짜 및 시간 API를 지원합니다.</p>
|
|
*
|
|
* @param objectMapper JSON 변환에 사용할 ObjectMapper
|
|
*/
|
|
public CommHttpMessageConverter(ObjectMapper objectMapper) {
|
|
super(objectMapper);
|
|
objectMapper.registerModule(new JavaTimeModule());
|
|
setObjectMapper(objectMapper);
|
|
}
|
|
|
|
/**
|
|
* 주어진 클래스 타입과 미디어 타입에 대해 이 변환기가 쓸 수 있는지 확인합니다.
|
|
*
|
|
* <p>미디어 타입이 지원되는 경우 true를 반환합니다.</p>
|
|
*
|
|
* @param clazz 변환할 클래스 타입
|
|
* @param mediaType 변환할 미디어 타입
|
|
* @return 지원하는 경우 true, 그렇지 않으면 false
|
|
*/
|
|
@Override
|
|
public boolean canWrite(@NonNull Class<?> clazz, @Nullable MediaType mediaType) {
|
|
return canWrite(mediaType);
|
|
}
|
|
|
|
}
|