Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

전공공부

ObjectMapper를 이용한 LocalDateTime Deserialize 에러 잡기 본문

Study/Java

ObjectMapper를 이용한 LocalDateTime Deserialize 에러 잡기

monitor 2023. 8. 3. 00:08

관리자 페이지 운영 중 Jackson Mapper 관련한 라이브러리 이전 버전일 경우 JDK8의 LocalDateTime을 제대로 파싱해서 가져오지 못하는 오류가 생겼다.

 

이는, 단순히 JacksonMapper 버전을 상승시켜서 해결 할 수 있다.

 

하지만, 리스크가 크고 이에 따라서 아래의 방법을 적용했다.

 

JDK 8 이상 부터 LocalDateTime의 직렬화 바이트 스트림을 제대로 파싱하기 위한 의존성 주입

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

@Bean 객체로 등록한 ObjectMapper에 아래와 같이 자바 타임 모듈에 역직렬화시 쓰일 데이터 포메터 지정하여서 역직렬화시 DTO 파싱 오류를 잡음

@Bean
ObjectMapper mapper() {
    JavaTimeModule module = new JavaTimeModule();
    LocalDateTimeDeserializer localDateTimeDeserializer =  new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
    module.addDeserializer(LocalDateTime.class, localDateTimeDeserializer);
    return Jackson2ObjectMapperBuilder.json()
            .modules(module)
            .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
            .build();
}