通过feign调用接口

    feign是声明式WEbService客户端,它的使用方法是定义一个接口,在接口上添加注解,即可完成对服务提供方接口的绑定,Feign可以与Ribbon组合实现负载均衡。它让调用接口更加容易。

  • Demo

 服务端、客户端都可以参考之前的项目https://blog.csdn.net/zgsxhdzxl/article/details/103781278,现在在原来的基础上进行更改 

  • 新建一个service工程
  • 新建一个接口,方法跟服务端的方法一致
@FeignClient(name = "PRODUCT", configuration = FeignClientConfig.class)
public interface TestService {

    @RequestMapping("/test/get/{id}")
    public String get(@PathVariable("id") String id);
}
  • 由于做了接口加密,所以配置config
@Configuration
public class FeignClientConfig {
    @Bean
    public BasicAuthRequestInterceptor getBasicAuthRequestInterceptor() {
        return new BasicAuthRequestInterceptor("admin", "123456");
    }

    @Bean
    public Logger.Level getFeignLoggerLevel() {
        return feign.Logger.Level.FULL ;
    }
}
  • 新建一个consumer工程,配置跟之前的一样
  • 在启动类上开启feign
@EnableFeignClients("com.zxl.service")
  • 调用feign接口
@RequestMapping("/test")
@RestController
public class TestController {

    @Autowired
    private TestService testService;

    @RequestMapping("/get")
    public String get(String id) {
        return testService.get(id);
    }
}
  • 结束

 

  • Feign原理

Feign的一个关键机制就是使用了动态代理。

  • 如果对某个接口定义了FeignClient注解,那么Feign就会针对该接口创建一个动态代理。
  • 调用接口,其实就是调用Feign创建的动态代理。
  • Feign会根据接口上的注解、参数等,动态构建出需要的服务地址
  • 进行请求以及接收相应消息
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值