Spring | Date Type Json Format

DoItDev·2022년 3월 15일
0
post-thumbnail

overview

spring boot 에서 json 포멧팅을 변경을 하는 방법을 알아보기 위해 작성된 포스팅이다.

Date 필드에서의 적용

글로벌이 아닌 한곳에서만 설정위한 방법이다.

@JsonFormat 을 사용을 하면 전역적으로 사용하는 것이 아니라 지역적으로 사용을 할 수 있다.

속성으로는 pattern, timezone 외 여러가지가 있다.

  • pattern: 날자 타입 포멧 설정
  • timezone: 날자 타입 타임존 설정

화면 캡처 2022-03-15 093512

configuration file 에서의 설정

@JsonFormat을 설정하는것은 지속적인 방법이 아니다.

글로벌 하게 사용하는 방법 중 하나인 설정파일에서 적용하는 방법이 있다.

화면 캡처 2022-03-15 094455

  • date-format: 날자 타입 포멧 설정
  • time-zone: 날자 타입 타임존 설정

이 설정 방법에는 약간의 단점이 있다.

LocalDateTime,LocalDate 에는 작동이 되지 않는다. 하지만 java.util.Date 와 java.util.Calendar 에는 정상작동이 된다.

JacksonObjectMapperBean 설정

위의 두번째 방식을 해소하기위해 우리는 java 설정 파일에서 Bean 주입을 통하여 커스텀을 할 수 있다.

이 방법의 경우 어플리케이션의 기본 포멧을 변경을 하게 도와주면 약간의 번거러움이 있지만 레거시 코드 나 java8에서 모두 적용된다는 점에서

글로벌 설정이 필요할 경우 java 설정 으로 bean 으로 올려서 사용을 하는 것을 지향해야 한다.

화면 캡처 2022-03-15 094455

화면 캡처 2022-03-15 093050

테스트 케이스를 작성을 해보아도 정상적으로 동작하는 것을 알 수 있다.

화면 캡처 2022-03-15 122023

화면 캡처 2022-03-15 122041

정리

  • 필드 타입에서 포멧 변경시 @JsonFormat 어노테이션을 사용
  • yml 설정 파일에서 사용이 가능하다.
  • java8 이상 혹은 레거시 코드에서는 java 설정이 유용하다.
profile
Back-End Engineer

0개의 댓글