Spring WebFlux(MongoDB Reactive)에서 ZonedDateTime 사용

5508 단어 springwebfluxjava
여러분, 안녕하세요. 이 기사에서는 Spring WebFlux 및 MongoDB가 ZonedDateTime을 사용할 수 있도록 권한을 부여하므로 시작하겠습니다.

TL;DR



this repository에서 소스 코드를 찾을 수 있습니다.

Spring WebFlux 프로젝트 생성





Spring WebFlux 애플리케이션 내에서 ZonedDateTime을 구현하려는 경우 MongoDB용 ReadingConverter 및 WritingConverter를 추가할 수 있습니다. 아래에서 구현된 코드를 볼 수 있습니다.

@Configuration
public class MongoConfig {

    @Bean
    public MongoCustomConversions mongoCustomConversions() {
        List<Converter<?,?>> converters = new ArrayList<>();
        converters.add(ZonedDateTimeToDate.INSTANCE);
        converters.add(DateToZonedDateTime.INSTANCE);
        return new MongoCustomConversions(converters);
    }

    @ReadingConverter
    enum DateToZonedDateTime implements Converter<Date, ZonedDateTime> {

        INSTANCE;

        @Override
        public ZonedDateTime convert(Date date) {
            return date.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .truncatedTo(ChronoUnit.MILLIS);
        }
    }

    @WritingConverter
    enum ZonedDateTimeToDate implements Converter<ZonedDateTime, Date> {

        INSTANCE;

        @Override
        public Date convert(ZonedDateTime zonedDateTime) {
            return Date.from(zonedDateTime.toInstant());
        }
    }
}


그게 다야. 클래스에서 ZonedDateTime을 datetime 유형으로 사용할 수 있습니다. 😁

POST 요청의 예




curl --location --request POST 'http://localhost:8080/promotions' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "promotion-2",
    "startDate": "2021-06-01T10:00:00.000+07:00",
    "endDate": "2021-06-20T18:00:00.000+07:00"
}'


결과







이것은 Spring Data MongoDB Reactive에서 ZonedDateTime의 변환기를 사용하는 방법에 대한 짧은 기사입니다. 모든 독자에게 유용하기를 바랍니다.

매우 감사합니다. 😄

좋은 웹페이지 즐겨찾기