SpringCloud入门之声明式web service客户端OpenFeign


前言

Feign是一个声明式的web service客户端,用它可以更容易编写web服务客户端。 它使你调用远程方法就像调用本地方法一样简单,不需要IP和端口,也不需要在单独写一个http请求工具类。并且feign集成了ribbon,实现了负载均衡。


一、引入Feign依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

二、编写代码

1.启动类上加注解EnableFeignClients

在启动类处加上如下的注解:

@SpringBootApplication
@EnableFeignClients
public class FeignApplication {

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

2.接口类上加注解FeignClient

PaymentService接口代码,这个接口的代码可以写到一个公共包里,让feign应用和服务端应用一同继承或者实现。

public interface PaymentService {
	CommonResult<Payment> getPaymentById();
}

在feign工程增加代码,示例如下:

@FeignClient("backend-service")
public interface PaymentServiceFeign extends PaymentService {
    @Override
    @RequestMapping(method = RequestMethod.GET, value = "/api/payment/getPaymentById")
    CommonResult<Payment> getPaymentById();
}

调用的时候就可以像请求普通的接口一样访问就可以,示例如下

@RestController
public class PaymentController  {

    @Resource
    private PaymentServiceFeign paymentServiceFeign;

    @GetMapping("/feign")
    public String getPaymentByFeign() {
        CommonResult<Payment> result = paymentServiceFeign.getPaymentById();
        return JSONUtil.toJsonStr(result); // JSONUtil hutool的包
    }
}

3.测试

后端服务1
后端服务2


总结

OpenFeign虽然集成了Ribbon,但Ribbon已经处于维护模式,应该避免使用Ribbon,官方使用Spring Cloud LoadBalancer。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值