12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.zhouhong.gatewayserver.config;
- import feign.codec.Decoder;
- import org.springframework.beans.BeansException;
- import org.springframework.beans.factory.ObjectFactory;
- import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
- import org.springframework.cloud.client.loadbalancer.LoadBalanced;
- import org.springframework.cloud.openfeign.support.ResponseEntityDecoder;
- import org.springframework.cloud.openfeign.support.SpringDecoder;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.http.MediaType;
- import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
- import org.springframework.web.client.RestTemplate;
- import org.springframework.web.reactive.function.client.ExchangeStrategies;
- import org.springframework.web.reactive.function.client.WebClient;
- import java.util.ArrayList;
- import java.util.List;
- @Configuration
- public class GatewayConfig {
- @LoadBalanced
- @Bean
- public RestTemplate restTemplate() {
- return new RestTemplate();
- }
- @Bean
- public Decoder feignDecoder() {
- return new ResponseEntityDecoder(new SpringDecoder(feignHttpMessageConverter()));
- }
- public ObjectFactory<HttpMessageConverters> feignHttpMessageConverter() {
- final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(new GateWayMappingJackson2HttpMessageConverter());
- return new ObjectFactory<HttpMessageConverters>() {
- @Override
- public HttpMessageConverters getObject() throws BeansException {
- return httpMessageConverters;
- }
- };
- }
- public class GateWayMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
- GateWayMappingJackson2HttpMessageConverter() {
- List<MediaType> mediaTypes = new ArrayList<>();
- mediaTypes.add(MediaType.valueOf(MediaType.TEXT_HTML_VALUE + ";charset=UTF-8"));
- setSupportedMediaTypes(mediaTypes);
- }
- }
- @Bean
- @LoadBalanced
- public WebClient.Builder loadBalancedWebClientBuilder() {
- return WebClient.builder().exchangeStrategies(ExchangeStrategies.builder().codecs(
- clientCodecConfigurer -> clientCodecConfigurer.defaultCodecs().maxInMemorySize(10 * 1024 * 1024)).build());
- }
- }
|