大家好,今天给大家分享的知识是Feign的快速入门!如有不足请多关照!!
一、Feign是什么?
feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service。Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端。feign的底层还是ribbon,只是帮我们封装了远程调用的功能。
二、入门
首先我们要新建项目,建项目跟建建ribbon项目基本一样。首先我们要建两个模块,一个是被调用的,一个是负责调用的,比如被调用的我们起名叫Order,负责调用的我们叫User。下面我们还是老样子,建项目,改配置文件......
首先来建Order模块,选上eureka-client和web依赖。
建完项目我们来修改配置文件。还是老样子,端口号,名称以及注册的的地址......之后在Application运行文件里加上@EnableEurekaClient注解。
弄完这些之后我们需要建一个controller层然后在里面写一个接口来供我们来调用。我在这里写了一个最简单的接口。代码如下:
package com.example.orderservice.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class OrderController {
@GetMapping("doOrder")
public String doOrder(){
return "Good!";
}
}
这样我们的Order模块就完成了。接下来写User模块,它负责调用Order模块。
在这里建项目的时就需要加上feign的依赖项了。
建完之后也需要改配置文件。参考如下:
配置完之后我们来建一个controller层以及一个接口。
controller注入接口。
package com.example.userservice.controller;
import com.example.userservice.feign.UserOrderFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
public UserOrderFeign orderFeign;
@GetMapping("userDoOrder")
public String userDoOrder(){
System.out.println("有用户进来了");
//这里需要发起一个远程调用
String result = orderFeign.doOrder();
return result;
}
}
在这里我们要写一个@FeignClient注解,它的意思就是通过这个注解来找到提供接口的应用名称。
package com.example.userservice.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @FeignClient(value = "order-service")
* value就是提供者的应用名称
*/
@FeignClient(value = "order-service")
public interface UserOrderFeign {
@GetMapping("doOrder")
public String doOrder();
}
然后我们分别运行Order和User模块,然后我们访问User模块。
可以看到成功调取到Order的接口。
总结
feign就是封装了ribbon,比ribbon更简单更快捷了,不学ribbon可能有点难以理解,建议还是先了解一下ribbon再学feign。喜欢的别忘留个赞!!!谢谢观看!!!!!