Spring Cloud Feign基于Netflix Feign实现,整合了Spring Cloud Riggon与Spring Cloud Hystrix,提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义方式。
创建feign 消费端项目
springcloud-feign-comsumer-demo
启动类添加@EnableFeignClients
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class FeignComsumerApplication {
public static void main(String[] args) {
SpringApplication.run(FeignComsumerApplication.class, args);
}
}
添加依赖包
org.springframework.cloud
spring-cloud-starter-openfeign
2.2.2.RELEASE
io.github.openfeign
feign-okhttp
11.0
添加配置项application.properties
feign.hystrix.enabled=true
feign.compression.request.enabled=true
feign.compression.request.mime-types=["text/xml","application/xml","application/json"]
feign.compression.request.min-request-size=2048
feign.compression.response.enabled=true
feign.client.config.default.logger-level=basic
feign.client.config.feign-provider-demo1.logger-level=full
创建feign配置类
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import feign.*;
import feign.codec.Decoder;
import feign.codec.Encoder;
import okhttp3.ConnectionPool;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.FeignAutoConfiguration;