package com.myoa.engineering.crawl.ppomppu.support.webclient.factory; import com.fasterxml.jackson.databind.ObjectMapper; import com.myoa.engineering.crawl.ppomppu.support.util.ObjectMapperFactory; import org.springframework.http.codec.json.Jackson2JsonDecoder; import org.springframework.http.codec.json.Jackson2JsonEncoder; import org.springframework.util.MimeTypeUtils; import org.springframework.web.reactive.function.client.ExchangeStrategies; /** * WebFluxExchangeStragiesFactory * * @author Shin Woo-jin (woozu.shin@kakaoent.com) * @since 2021-09-08 */ public final class WebFluxExchangeStragiesFactory { private WebFluxExchangeStragiesFactory() {} public static ExchangeStrategies ofDefault() { final ObjectMapper mapper = ObjectMapperFactory.defaultMapper(); return ExchangeStrategies.builder() .codecs(configurer -> { configurer.defaultCodecs().maxInMemorySize(-1); configurer.defaultCodecs() .jackson2JsonEncoder(new Jackson2JsonEncoder(mapper, MimeTypeUtils.APPLICATION_JSON)); configurer.defaultCodecs() .jackson2JsonDecoder(new Jackson2JsonDecoder(mapper, MimeTypeUtils.APPLICATION_JSON)); }) .build(); } public static ExchangeStrategies ofTextHtml() { final ObjectMapper mapper = ObjectMapperFactory.defaultMapper(); return ExchangeStrategies.builder() .codecs(configurer -> { configurer.defaultCodecs().maxInMemorySize(-1); configurer.defaultCodecs() .jackson2JsonEncoder(new Jackson2JsonEncoder(mapper, MimeTypeUtils.TEXT_HTML)); configurer.defaultCodecs() .jackson2JsonDecoder(new Jackson2JsonDecoder(mapper, MimeTypeUtils.TEXT_HTML)); }) .build(); } }