package com.doumee.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.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 java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* Author: lizhi
|
* Date: 2022-02-17
|
* Describe: 解决 HttpMessageConverters Bean未注册问题
|
*/
|
@Configuration
|
public class DecoderConfig {
|
|
@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);
|
}
|
}
|
}
|