码迷,mamicode.com
首页 > 其他好文 > 详细

feign

时间:2020-05-05 09:14:50      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:restful   pos   alt   pen   接口   ribbon   consumer   声明式   mamicode   

一.什么是feign

之前使用ribbon作为负载均衡来进行实现consumer调用provider,这种调用模式需要去借助restful风格(RestTemplate),这种调用方式违背了程序员的思维。

后来springcloud提供了另外一种符合程序员思维的调用方式:声明式服务调用(Feign)

1.feign

虽然springcloud把他定义为声明式服务调用,但他仍然是一个负载均衡(换句话说,也可以实现负载均衡功能),其实feign只是集成了ribbon在里面,所有的负载均衡功能都是在ribbon所实现的,feign只要做调用

2.什么是声明式服务调用

技术图片

二.feign使用

1.首先创建consumer-feign工程

2.然后去创建api工程

3.在api工程中,只需要编写service层的接口,其他的什么都不需要写,然后让consumer工程去调用api工程中的service接口

4.因为consumer需要调用api工程,所以consumer必须要依赖于api工程

? api中都是service层的接口,因为api在这里用的不是serviceImpl实现类,而是直接对应了provider的controller,所以api不需要依赖service层

5.因为最终api中的方法也有返回值(Book,List...),所以需要依赖于model

6.feign依赖(放在api工程中):因为feign层 依赖api层 并且api层也需要feign 所以就吧依赖放在api层

 		<!--feign 依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

三.feign的注意事项

1..在feign中,所有的接口方法的返回值类型以及方法名还是参数名都必须要和provider项目中的方法一模一样

2.在使用feign的时候,接口中的方法也必须要使用@GetMapping和@PostMapping这里也必须要和provider的方法注解一模一样,只要feign报错,无非就是以上的两个点没有注意到,还有绝对就是找不到provider项目

3.千万不要忘记在接口上添加注解(@FeignClient)

//value 指向配置文件中spring.application.name的值
@FeignClient(value = "employee-provider")

feign

标签:restful   pos   alt   pen   接口   ribbon   consumer   声明式   mamicode   

原文地址:https://www.cnblogs.com/licha233/p/12829110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!