Files
spring-batch-quartz/batch-quartz/src/main/java/com/spring/common/converter/CommHttpMessageConverter.java
mindol1004 868bb01453 commit
2024-10-21 17:59:04 +09:00

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);
}
}