개발/Spring
RequestBody의 데이트 타입 정해진 format으로 받기
보리ing
2021. 2. 24. 16:51
Spring Restful 컨트롤러에서 클라이언트로부터 json타입의 객체를 받는 경우 Jackson 메세지 컨버터 클래스에서 객체 변환 작업이 일어난다.
나 같은 경우 커스텀된 타임 포맷 모듈을 오브젝트 매퍼로 생성하고, 이를
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
converter.setObjectMapper(customObjectMapper());
return converter;
}
처럼 빈으로 생성하여 사용하고있다.
(customObjectMapper() 는 ObjectMapper 클래스를 상속받아 설정 모듈을 추가하였다.)
그러던 중 특정 api에서만 다른 포맷으로 받고싶은 경우가 있다면
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime dateTime;
와 같은 방법이 @JsonDeserialize 어노테이션에 기본 LocalDateTimeDeserializer.class 사용하도록 하고,
@JsonFormat 어노테이션에 원하는 포멧을 설정하면 된다.