spring cloud 之 feign

一、fegin简介

fegin 时 Netflix 开发的声明式、模板化的HTTP客户端,其令该来自Retrofit、JAXRS-2.0以及WebSocket。feign可帮助我们更加便捷,优雅的调用HTTP API。
在spring cloud中,使用feign非常简单,创建一个接口,并在接口上添加一些注解,代码就完成了。feign支持多种注解,例如feign自带的注解或者JAX-RS注解等 。
spring cloud对feign进行了增强,使feign支持了Spring MVC注解,并整合了Ribbon和Eureka
,从而让Feign的使用更加便捷。

二、使用

添加依赖

        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

编写 接口

// name=eureka里注册的服务
@FeignClient(path = "test", name = "client-hyq-life-server")
public interface TestApi {


    @RequestMapping(value = "/idnex", method = RequestMethod.GET)
    String idnex();

}

编写实现

@RestController
@RequestMapping("test")
public class TestController implements TestApi {

    @Autowired
    private TestServer testServer;

    @Override
    public String idnex(){
        return testServer.idnex();
    }

}

编写调用

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private TestApi testApi;

    @GetMapping("/index")
    public String index(){
        return testApi.idnex();
    }

}

如果两个服务时分离的都需要给启动类加

@EnableFeignClients
@SpringBootApplication
public class BffAppServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(BffAppServerApplication.class, args);
    }

}

三、Feign对压缩的支持

feign:
  compression:
    # 请求压缩
    request:
      enabled: true
      mime-types: "text/xml","application/xml","application/json"
      # 用于设置请求的最小阈值
      min-request-size: 2048
    # 响应压缩
    response:
      enabled: true

四、Feign的日志

你可能感兴趣的:(spring cloud 之 feign)