从永远到永远-SpringCloud项目实战(六)-Feign

关于Feign
为了面试,曾数次准备过相应的专业知识。大家说的都比较官方,晦涩难懂,今天趁这个机会再次记录下自己的感悟。
首先联想一个场景: 在以前我们做的SSM单体架构的项目中。当A系统与B系统要做数据同步时(暂时不讨论webservice接口)。我们会在A系统中写一个接口,然后将地址、参数等告知B系统开发。B系统开发会模拟Http请求,请求A系统接口以获取数据。

Feign本质上,就是实现的这部分的功能(其底层默认使用的是jdk的HTTPUrlConnection做的,当然也支持其他)。只不过是因为应用于微服务架构,存在于spring cloud项目中,多穿了个马甲罢了。

至于说,其整合了ribbon(负载均衡等)和hystrix等,那只不过是其功能的延申,非其立身之本。

使用,当然前提是相应服务已经注册了。此处承接上一章节,默认已经进行注册。
1、依赖


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

2、调用端启动类加注解
从永远到永远-SpringCloud项目实战(六)-Feign_第1张图片
3、调用端些接口,注解表明被调用的服务的名称及接口路径

/**
 * @program: education
 * @description:
 * @author: 三层饼干儿
 * @create: 2020-06-22 00:35
 **/
@FeignClient("service-vod")//被调用的服务名称
@Component
public interface VodClient {
	//定义调用方法路径 注意路径从哪里开始写的
	@DeleteMapping("/eduvod/video/removeAliYunVideo/{id}")
	public R removeAliYunVideo(@PathVariable("id") String id);
}

注意:
1)路径
2)@Path Variable后必须指定参数名称
3)这方法可以直接复制要调用的服务端的controller中的方法修改即可。

4、正常处理其他逻辑代码即可。

你可能感兴趣的:(#,Feign)