개발/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 어노테이션에 원하는 포멧을 설정하면 된다.