[Spring Boot] json에서 LocalDateTime이 Array로 나올 때

갓김치·2021년 6월 12일
1

예외

목록 보기
12/28
post-custom-banner

상황

해결과정

@EnableWebMvc를 뺐다

  • @EnableWebMvc가 serializer, deserializer 설정을 가지고 있어서 커스텀으로 config를 등록해봤자 덮어씌우기때문

빼도 되는 이유

format이 바뀔수도 있으니 application.properties로 옮김

DateFormatConfig.java

  • @Value로 변수에 직접 주입이 안되어서 생성자 주입함
@Configuration
public class DateFormatConfig {
    private String dateFormat;
    private String datetimeFormat;

    @Autowired
    public DateFormatConfig(@Value("${format.date}") String dateFormat,
                             @Value("${format.date-time}") String datetimeFormat) {
        this.dateFormat=dateFormat;
        this.datetimeFormat=datetimeFormat;
    }

    @Bean
        public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return jacksonObjectMapperBuilder -> {
            jacksonObjectMapperBuilder.timeZone(TimeZone.getTimeZone("UTC"));
            jacksonObjectMapperBuilder.simpleDateFormat(datetimeFormat);
            jacksonObjectMapperBuilder.serializers(new LocalDateSerializer(DateTimeFormatter.ofPattern(dateFormat)));
            jacksonObjectMapperBuilder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(datetimeFormat)));
        };
    }
}

참고

profile
갈 길이 멀다
post-custom-banner

0개의 댓글