SpringCloud之Feign

简介
       Feign使用Jersey和CXF等工具为ReST或SOAP服务编写Java客户端。此外,Feign允许您在诸如Apache HC之类的http库之上编写自己的代码。Feign通过可自定义的解码器和错误处理功能,以最小的开销和代码将代码连接到http API,可以将其写入任何基于文本的http API。
       Feign通过将注释处理为模板化请求来工作。在输出之前,参数以简单的方式应用于这些模板。尽管Feign仅限于支持基于文本的API,但它极大地简化了系统方面,例如重播请求。此外,Feign知道这一点,就可以轻松对转换进行单元测试。
Java版本相容性
Feign 10.x及更高版本建立在Java 8上,并且可以在Java 9、10和11上运行。对于那些需要JDK 6兼容性的应用程序,请使用Feign9.x。
feign相对于ribbon的优点:
1. feign本身里面就包含有了ribbon
2. feign自身是一个声明式的伪http客户端,写起来更加思路清晰和方便
3. fegin是一个采用基于接口的注解的编程方式,更加简便

创建项目:springboot项目创建,选择netflix-eureka-client和openfeign两个依赖即可。

1. 修改启动类,添加@EnableEurekaClient注册中心,开启Feign的功能@EnableFeignClients

@SpringBootApplication
@EnableDiscoveryClient
@EnableEurekaClient
//开启Feign的功能
@EnableFeignClients
public class SpringCloudFeignApplication {

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

}

2. 创建接口,添加注解,@FeignClient(“服务名”)注解,指定要调用的服务“cloud-server”,如下图即为某服务的配置,红框中的即为服务名,接口中的方法请求地址要和我们服务提供方的全部一致即可

//@FeignClient(“服务名”)注解指定要调用的服务
@FeignClient(name = "cloud-server")
@Component
public interface FeignService {
	
	@GetMapping("/getinfo")
    String getInfo();
}

3. 请求

@RestController
public class BaseController {
	@Autowired 
	private FeignService feignService;
	
	@GetMapping("/go")
    public String callFeignServer(){
        return feignService.getInfo();
    }
}

4. 配置 application.yml

server:
  port: 8090
  tomcat:
    uri-encoding: utf-8
      
eureka:
  client:
  #是否将自己注册到Eureka服务中
    register-with-eureka: true
    #是否从Eureka服务中获取注册信息
    fetch-registry: true
    #Eureka注册中心的地址
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka

spring:
  application:
    #服务名称
    name: cloud-feign

访问 http://localhost:8090/go 即可,会轮训访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值